sql语句求两个日期的工作日间隔
时间: 2023-09-04 13:02:41
浏览: 218
要计算两个日期之间的工作日间隔,可以使用SQL语句中的函数和条件语句来实现。假设有一个名为"dates"的表,其中包含两个列"start_date"和"end_date",分别表示起始日期和结束日期。
首先,我们可以使用WEEKDAY函数来获取某个日期是一周中的哪一天,0表示星期一,依此类推。然后,我们可以使用条件语句来判断起始日期与结束日期之间有多少个工作日。
以下是一个示例的SQL语句:
SELECT
COUNT(*) AS work_days
dates
WHERE
start_date <= end_date
AND WEEKDAY(start_date) NOT IN (5,6) -- 排除周末
AND WEEKDAY(end_date) NOT IN (5,6)
AND DATEDIFF(end_date, start_date) > 0 -- 排除同一天
AND DATEDIFF(end_date, start_date) - (DATEDIFF(end_date, start_date) DIV 7)*2 >= CASE WHEN WEEKDAY(start_date) > 5 THEN 5 ELSE WEEKDAY(start_date) END -- 根据起始日期补偿周末数
AND DATEDIFF(end_date, start_date) - (DATEDIFF(end_date, start_date) DIV 7)*2 >= CASE WHEN WEEKDAY(en
最低
0.47元/天
开通会员,查看完整答案
成为会员后, 你将解锁
下载资源随意下
优质VIP博文免费学
优质文库回答免费看
C知道免费提问
付费资源9折优惠