Oracle SQL 获取本月内的所有周一

最近遇到业务需求,需要按周统计数据。

思考再三想到可以使用每周周一来计算。

故写出如下获得系统当前月份所有周一的语句。


select * from (

--转化成周一去重

select distinct trunc(t.day,'iw') as mon from (

--获取本月所有日期集合

SELECT trunc(sysdate, 'mm') + LEVEL - 1 DAY

FROM DUAL

CONNECT BY trunc(sysdate, 'mm') + LEVEL - 1 <=

last_day(trunc(sysdate))

)t

)a

--移除非本月的周一

where trunc(a.mon, 'mm') =  trunc(sysdate, 'mm')

ORDER BY MON


注:

trunc(sysdate,'iw') 语句可以获取本周周一的日期 (date类型)

trunc(sysdate,'iw') +1 可以获取本周周二的日期。

以此类推

(可以把sysdate换成其它时间)

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容