Oracle查询返回当月的第一个星期日
我有一个查询要返回当月的第一个星期日。但是,如果第一个星期天是一个月的第一天,那么它将改为下一个星期天。怎样才能摆脱它,在一个月的第一天返回第一个星期日 以2021年8月1日为例,下面的查询返回2021年8月8日的第二个星期日Oracle查询返回当月的第一个星期日,oracle,datetime,to-date,Oracle,Datetime,To Date,我有一个查询要返回当月的第一个星期日。但是,如果第一个星期天是一个月的第一天,那么它将改为下一个星期天。怎样才能摆脱它,在一个月的第一天返回第一个星期日 以2021年8月1日为例,下面的查询返回2021年8月8日的第二个星期日 SELECT TO_CHAR(NEXT_DAY(TRUNC(TO_DATE(('20210801'), 'yyyyMMdd'), 'MM'), 'Sunday'), 'yyyyMMdd') AS FIRST_SUNDAY FROM DUAL; 将一天移回上个月的最后一天
SELECT TO_CHAR(NEXT_DAY(TRUNC(TO_DATE(('20210801'), 'yyyyMMdd'), 'MM'), 'Sunday'), 'yyyyMMdd') AS FIRST_SUNDAY FROM DUAL;
将一天移回上个月的最后一天:
SQL> SELECT TO_CHAR (
2 NEXT_DAY (TRUNC (TO_DATE (('20210801'), 'yyyyMMdd'), 'MM') - 1,
3 'sunday'), -- ^^
4 'yyyyMMdd') AS FIRST_SUNDAY --> this
5 FROM DUAL;
FIRST_SU
--------
20210801
SQL> SELECT TO_CHAR (
2 NEXT_DAY (TRUNC (TO_DATE (('20210701'), 'yyyyMMdd'), 'MM') - 1,
3 'sunday'),
4 'yyyyMMdd') AS FIRST_SUNDAY
5 FROM DUAL;
FIRST_SU
--------
20210704
SQL>