如何在MySQL中计算不包括周末和节假日的日期差异



我想计算开始和结束等两个日期之间的天数,但不包括周末和公共假期。我有公共假期日期的桌子。我看到了这样的例子

从表中选择时间差异(日期1,日期2)其中 date1 不在(从 holiday_table 中选择假日)和日期 2 不在(从holiday_table中选择假日)和DAYOFWEEK(date1) 不在 (1,7) 中,DAYOFWEEK(date2) 不在 (1,7) 中 

但这行不通,因为它只需要两个日期开始和结束,但它之间的任何东西都会离开。你还有其他建议吗?

我觉得从您对问题的描述中应该在UDF中创建它,逻辑应该是这样的:

  • 检查日期之间的日期数select count(1) from holiday_table where holiday between @start and @end
  • 然后取@start@end之间的实际差值,减去holiday_table的计数

最新更新