【发布时间】:2021-09-21 06:33:48
【问题描述】:
我有两列,每列都有一个时间戳
column_a column_b
2021-08-03 13:22:29 2021-08-09 15:51:59
我想计算小时差,但不包括周末(如果日期落在两个时间戳之间或之间)。
我已经尝试过 TIMESTAMPDIFF 和 HOURS_BETWEEN - 但这些仍然包括周末。
更新: 我的解决方案是... 创建一个函数来计算两天之间的天数,不包括从这里拍摄的周末 How to get the WORKING day diff in db2 without saturdays and sundays?
然后在我的 SELECT 中使用 Db2s 本机 DATEDIFF(8,xxx,yyy) 来获取总小时数,并从这个 DATEDIFF 中减去函数返回的值 * 24(小时)
【问题讨论】:
-
你的周末有多长?你试过减法吗?您可以使用 DAYOFWEEK 来确定给定的时间戳是否在周末。
-
周末是周六和周日。 column_a 和 column_b 中的时间戳值将永远变化。有时时间戳可能落在我可以使用 DAYOFWEEK 的值上,有时周末可能在 column_a 到 column_b 范围的中间,以及其他各种组合。
-
您所说的是,它归结为您可以实现的简单 IF / ELSE (=> CASE) 逻辑。试一试并报告。
-
最大的区别是什么(可能是 30 天,其中可能包括多个周末日?国家法定节假日呢?要复杂得多。
标签: db2