ssms到oracle openquery DATEADD

时间:2019-03-06 21:36:32

标签: sql oracle openquery

使用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)
    ')

1 个答案:

答案 0 :(得分:1)

您可以使用:

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 Server到Oracle:

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

db<>fiddle demo

相关问题