Расчет диапазона дат для Oracle - PullRequest
0 голосов
/ 18 марта 2020

Я автоматизирую сценарий Oracle, который должен выбирать данные с первого дня прошлого месяца до первого дня этого месяца (этот отчет запускается во второй день каждого месяца). Но независимо от того, какая комбинация LAST_DAY, TRUN C, TO_CHAR, TO_DATE, ADD_MONTHS и т. Д. c сработала.

Может кто-нибудь помочь мне разобраться, как автоматизировать расчет для:

WHERE date BETWEEN (first day of last month) AND (first day of this month)

Ответы [ 2 ]

0 голосов
/ 19 марта 2020

Это сделал трюк:

BETWEEN TO_CHAR(LAST_DAY(ADD_MONTHS(SYSDATE, -2)) +1, 'YYYY-MM-DD') AND TO_CHAR(LAST_DAY(ADD_MONTHS(SYSDATE, -1)) +1, 'YYYY-MM-DD')
0 голосов
/ 18 марта 2020

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

WHERE date between trunc(trunc(sysdate,'MM')-1,'MM') and trunc(sysdate, 'MM');

db <> fiddle demo

select trunc(trunc(sysdate,'MM')-1,'MM') AS "first day of last month",
       trunc(sysdate, 'MM') AS "first day of this month"
from dual;

из двойного

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