смс к оракулу openquery DATEADD - PullRequest
1 голос
/ 07 марта 2019

Новое в использовании 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 Ответ

1 голос
/ 07 марта 2019

Вы можете использовать:

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...