SQL函数获取某年某月的随机工作日、工作时间

本文介绍了如何在ORACLE和MYSQL数据库中使用SQL函数获取某年某月的随机工作日以及工作时间。针对ORACLE,通过获取一年的日期、星期并筛选出工作日,排除特定节假日,再添加随机时分秒。对于MYSQL,提供了包含日期、星期和节假日判断的函数,以生成随机工作时间。
摘要由CSDN通过智能技术生成

ORACLE版本

获取一年的序号、日期、星期

SELECT
	ROWNUM AS ID,
	TO_DATE ( '20180101', 'YYYYMMDD') + ROWNUM - 1 RQ,
	TO_CHAR (
		TO_DATE ('20180101', 'YYYYMMDD') + ROWNUM - 1,
		'D'
	) WEEK
FROM
	(
		SELECT
			ROWNUM
		FROM
			DUAL CONNECT BY ROWNUM <= TO_DATE ('20181231', 'YYYYMMDD') - TO_DATE ('20180101', 'YYYYMMDD') + 1
	)

结果如图,365条结果行
结果集数据

嵌套一层,获取工作日,可自行筛选掉节假日(示例去除了元旦、五一、十一)

SELECT
	*
FROM
	(
		SELECT
			ROWNUM AS ID,
			TO_DATE ('20180101', 'YYYYMMDD') + ROWNUM - 1 RQ,
			TO_CHAR (
				TO_DATE ('20180101', 'YYYYMMDD') + ROWNUM - 1,
				'D'
			) WEEK
		FROM
			(
				SELECT
					ROWNUM
				FROM
					DUAL CONNECT BY ROWNUM <= TO_DATE ('20181231', 'YYYYMMDD') - TO_DATE ('20180101', 'YYYYMMDD') + 1
			)
	)
WHERE
	WEEK N
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值