如何从SYSDATE获取以前的日期,月份,季节

时间:2019-01-07 01:37:02

标签: oracle toad

我是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 :(得分:1)

  

我正在尝试从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                

db <>提琴here