mySQL DateDiff 小时按日期

标签 mysql sql date datetime

我正在寻找一些关于如何在 mySQL 中按日期分组时以小时为单位完成日期差异的想法。例如,以下日期的正常 DateDiff (Hours) 方法将产生 49 小时,但我感兴趣的是哪些天占总 49 小时的份额:

Date 1: 2016-06-12 12:00
Date 2: 2016-06-14 13:00

结果:

开始 结束 差异
2016-06-12 12:00 2016-06-13 00:00 12 小时
2016-06-13 00:00 2016-06-14 00:00 24 小时
2016-06-14 00:00 2016-06-14 13:00 13 小时

谢谢!

最佳答案

假设您有一个日历表并且开始日期和结束日期在变量中,那么这样的逻辑应该可以满足您的要求:

select c.date, c.date + interval 1 day,
       timstampdiff(hour,
                    greatest(c.date, $start),
                    least(c.date + interval 1 day, $end)
                   )
from calendar c
where c.date >= date($start) and c.date < date($end) + interval 1 day

关于mySQL DateDiff 小时按日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37780918/

相关文章:

python - 没有名为 MySQLdb 的模块

mysql - 为什么复合主键还在?

java - 如何使用 DateTimeFormatter 只获取时间?

java - 设置准备好的语句参数时出现 NullPointerException

mysql - MySQL 中表比较的多次更新

SQL 从 Excel VBA : Create a temporary table in VBA (for reuse) from a SQL query

sql - 如何在 PostgreSQL 中使用 SQL 获取 session 记录

sql - CASE 语句中 WHEN 子句的执行顺序

ios - 在自定义类中初始化日期会导致错误 : "instance member cannot be used on type"

r - 按 ID 和重叠日期范围连接数据帧