ORACLE 获取某一年中的所有周末日期

该文章提供了一种OracleSQL查询方法,通过递归层次查询获取一年中的所有日期,并筛选出周末(星期六和星期日)。查询首先生成从一年开始到结束的所有日期,然后通过decode函数判断日期对应的星期,最后过滤出星期六和星期日。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ORACLE 获取某一年中的所有周末日期

思路是先获取一整年的所有日期,标准星期,再做筛选

SELECT
	CHINA_WEEK AS WEEK ,TO_DATE(DATETIME, 'yyyy-MM-dd') 
FROM
	(
	SELECT
		to_char(TO_DATE('2018-12-31', 'yyyy-MM-dd') - LEVEL, 'd') AS week,
		decode(to_char(TO_DATE('2018-12-31', 'yyyy-MM-dd') - LEVEL, 'd'), 1, '星期一', 2, '星期二', 3, '星期三', 4, '星期四', 5, '星期五', 6, '星期六', 7, '星期日') AS china_week,
		TO_CHAR((TO_DATE('2018-12-31', 'yyyy-MM-dd') - (ROWNUM - 1)), 'yyyy-MM-dd') AS datetime
	FROM
		dual a
	CONNECT BY
		LEVEL <= trunc(TO_DATE('2018-12-31', 'yyyy-MM-dd') - TO_DATE('2018-01-01', 'yyyy-MM-dd')+ 1)
	ORDER BY
		datetime) d
WHERE
	d.week IN (6, 7)
	
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值