在MySQL中计算两个日期之间工作日的方法
许多流行的电子表格程序,例如Excel,都提供NETWORKDAYS()函数来计算两个日期之间工作日的天数。但是,MySQL没有类似的内置函数。
解决方案:数学表达式
要在MySQL中计算两个日期之间工作日的天数,可以使用以下表达式:
<code class="language-sql">5 * (DATEDIFF(@E, @S) DIV 7) + MID('0123444401233334012222340111123400001234000123440', 7 * WEEKDAY(@S) + WEEKDAY(@E) + 1, 1)</code>
解释:
DATEDIFF(@E, @S)
:计算结束日期(@E)和开始日期(@S)之间的天数差。DIV 7
:将差值除以7以获得日期之间的周数。5
:将周数乘以5以获得工作日的天数。MID()
:根据开始日期和结束日期从字符串中提取相关的数字子集。表达式中使用的特定字符串是根据不同开始日期和结束日期组合之间工作日的天数构建的。假设和限制:
示例:
要计算'2023-03-06'(@S)和'2023-03-10'(@E)之间工作日的天数,可以使用以下查询:
<code class="language-sql">SELECT 5 * (DATEDIFF('2023-03-10', '2023-03-06') DIV 7) + MID('0123444401233334012222340111123400001234000123440', 7 * WEEKDAY('2023-03-06') + WEEKDAY('2023-03-10') + 1, 1) AS num_working_days;</code>
此查询将返回两个日期之间工作日的天数,即5。
以上是如何在没有内置函数的情况下计算 MySQL 中两个日期之间的工作日?的详细内容。更多信息请关注PHP中文网其他相关文章!