Как получить предыдущие дни, месяцы, сезон от SYSDATE - PullRequest
0 голосов
/ 07 января 2019

Я новичок в Oracle / Toad. Я пытаюсь получить предыдущие дни, месяцы, сезоны из SYSDATE так:

20190102
20190101
20181231
20181230
20181201
20181101
20181001
20180701
20180401
20180101
20171001
20170701 

Может ли кто-нибудь помочь мне с этим?

SELECT to_date(to_char(sysdate,'yyyymmdd'),'yyyymmdd'),
       to_date(to_char(sysdate,'yyyymmdd')-1,'yyyymmdd'), 
       to_date(to_char(sysdate,'yyyymmdd')-2,'yyyymmdd'), 
       to_date(to_char(sysdate,'yyyymmdd')-3,'yyyymmdd'),
       trunc(sysdate)-(to_number(to_char(sysdate,'dd'))-1)
       from dual;

Я застрял в этой точке.

1 Ответ

0 голосов
/ 07 января 2019

Я пытаюсь получить предыдущие дни, месяцы, сезоны от SYSDATE

Логика ожидаемого ряда дат неясна, однако, исходя из цитаты, вот основные инструменты для достижения вашей цели:

SELECT 
    trunc(sysdate) - 1 last_day,
    add_months(trunc(sysdate, 'MM'), -1) first_day_of_last_month,
    add_months(trunc(sysdate, 'Q'), -3) first_day_of_last_quarter
FROM DUAL

Выход:

  LAST_DAY  | FIRST_DAY_OF_LAST_MONTH | FIRST_DAY_OF_LAST_QUARTER
  :-------- | :---------------------- | :------------------------
  06-JAN-19 | 01-DEC-18               | 01-OCT-18                

дБ <> скрипка здесь

...