如何解决Oracle 查询返回当月的第一个星期日
我有一个查询要返回当月的第一个星期日。但是,如果第一个星期日是该月的第一天,则改为下一个星期日。怎么能去掉它返回每月第一天的第一个星期日?
以2021年8月1日为例,查询返回2021年8月8日第二个星期日。
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'),4 'yyyyMMdd') AS FIRST_SUNDAY
5 FROM DUAL;
FIRST_SU
--------
20210704
SQL>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。