计算不包括周末的日期之间的天数 (MySQL)
使用 DATEDIFF() 函数可以直接确定 MySQL 中两个日期之间的差异。但是,如果您需要从计算中排除周末,则需要更专门的方法。
要实现此目的,请考虑使用以下 MySQL 函数:
<code class="mysql">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);</code>
此函数需要两个日期作为输入并返回它们之间的天数,不包括周末(即周六和周日)。
以下是其组成部分的细分:
`ABS(DATEDIFF(ADDDATE(date2, INTERVAL 1 - DAYOFWEEK(date2) DAY),
ADDDATE(date1, INTERVAL 1 - DAYOFWEEK(date1) DAY))) / 7 * 2`: Calculates the number of weekend days between the two dates.
通过组合这些组件,该函数可以准确计算两个日期之间的天数,周末除外。
以上是如何计算MySQL中两个日期之间的工作日数?的详细内容。更多信息请关注PHP中文网其他相关文章!