在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中文網其他相關文章!