ssms 到 oracle openquery DATEADD

ssms to oracle openquery DATEADD

刚开始使用 Openquery 并尝试从当前月份和上个月提取数据。 通常我只会使用 DATEADD 来获取特定日期,但 OpenQuery 似乎不喜欢它。关于如何从当前月份和上个月提取的任何提示?

这是我到目前为止所尝试过的方法。

SELECT * FROM OPENQUERY(TestServer,'

        SELECT name
            ,number
            ,create_date
            ,carton
            ,trailer
            ,bol
        FROM TEST.TESTING_VIEW1 TestV
        WHERE (TestV.create_date>=DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE()) - 1, 0) OR TestV.create_date IS NULL)
    ')

您可以使用:

SELECT * 
FROM OPENQUERY(TestServer,'
        SELECT name
            ,number
            ,create_date
            ,carton
            ,trailer
            ,bol
        FROM TEST.TESTING_VIEW1 TestV
        WHERE (TestV.create_date>= add_months(TRUNC(current_date,''MONTH''), -1) 
           OR TestV.create_date IS NULL)
    ');

SQL 服务器到 Oracle:

DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE()) - 1, 0)
<=> 
add_months(TRUNC(current_date,'MONTH'), -1) 

db<>fiddle demo