【问题标题】:how to calculate date difference excluding weekends and holidays in mysql如何在mysql中计算不包括周末和节假日的日期差异
【发布时间】:2012-05-03 17:14:46
【问题描述】:

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

从表中选择 TIMEDIFF(date1,date2) 其中 date1 不在(从 holiday_table 中选择假期)和 date2 不在(从 holiday_table 中选择假期)和 DAYOFWEEK(date1) 不在 (1,7) 和 DAYOFWEEK(date2) 不在 (1,7)

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

【问题讨论】:

    标签: mysql sql


    【解决方案1】:

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

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

    【讨论】:

    • 好的,这意味着我应该使用 UDF,但问题是我不熟悉 UDF。在这种情况下您有任何示例吗?或者如果可能的话,您可以为此提供 sql 查询。我想这对其他人也很有用。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多