gpt4 book ai didi

mysql - 计算两个日期之间的天数,不包括周末(仅限 MySQL)

转载 作者:可可西里 更新时间:2023-11-01 07:46:42 29 4
gpt4 key购买 nike

我需要计算 MySQL 中两个日期之间的差异(以天为单位),不包括周末(周六和周日)。即天数之差减去其间周六和周日的天数。

目前,我只是用以下方法计算天数:

SELECT DATEDIFF('2012-03-18', '2012-03-01')

这返回17,但我想排除周末,所以我想要12(因为3号和4号,10号和11号和17号是周末)。

我不知道从哪里开始。我知道 WEEKDAY() 函数和所有相关函数,但我不知道如何在此上下文中使用它们。

最佳答案

只需使用一个简单的函数来尝试一下:

CREATE FUNCTION TOTAL_WEEKDAYS(date1 DATE, date2 DATE)
RETURNS INT
RETURN ABS(DATEDIFF(date2, date1)) + 1
- ABS(DATEDIFF(ADDDATE(date2, INTERVAL 1 - DAYOFWEEK(date2) DAY),
ADDDATE(date1, INTERVAL 1 - DAYOFWEEK(date1) DAY))) / 7 * 2
- (DAYOFWEEK(IF(date1 < date2, date1, date2)) = 1)
- (DAYOFWEEK(IF(date1 > date2, date1, date2)) = 7);

测试:

SELECT TOTAL_WEEKDAYS('2013-08-03', '2013-08-21') weekdays1,
TOTAL_WEEKDAYS('2013-08-21', '2013-08-03') weekdays2;

结果:

| WEEKDAYS1 | WEEKDAYS2 |
-------------------------
| 13 | 13 |

关于mysql - 计算两个日期之间的天数,不包括周末(仅限 MySQL),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9757919/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com