【发布时间】:2020-11-26 00:01:45
【问题描述】:
我需要计算两个日期之间的小时数,其中一个是 NOW(),不包括周末。 我找到了一些使用存储过程或 mysql 函数的解决方案,但我希望在单个查询中执行此操作。
我可以使用这个来获得一般的小时差:
SELECT HOUR(TIMEDIFF(NOW(), created_at))
但我只需要返回工作日的几个小时,而不是周末。所以从周五 23:00 到周一 1:00 应该只有 2 小时的差异。
任何帮助将不胜感激。
谢谢!
Mysql 8
【问题讨论】:
-
这很难。这需要来计算。数据库有利于检索东西,它们不利于对东西进行计算。我建议您停止在单个查询中执行此操作。即使有人提供了解决方案,这也将是一个怪物。你可以用一种实际的编程语言更优雅地做到这一点。
-
指定 MySQL 版本。
-
@akina 我刚刚更新了。版本 8。
-
在 CTE 的源日期范围内生成周末日期列表。在另一个 CTE 中的不同日期解析每个周期。加入和删除工作日。分组并计算结果。
标签: mysql sql datetime recursive-query mysql-8.0