【问题标题】:Split time intervals into 1 hour intervals mysql将时间间隔分成1小时间隔mysql
【发布时间】:2019-05-21 09:55:15
【问题描述】:

我有时间戳级别的签到和结帐数据

ID    checkin_datetime    checkout_datetime
4     04-01-2019 13:07    04-01-2019 13:09
4     04-01-2019 13:09    04-01-2019 13:12
4     04-01-2019 14:06    04-01-2019 14:07
4     04-01-2019 14:55    04-01-2019 15:06
22    04-01-2019 20:23    04-01-2019 21:32
22    04-01-2019 21:38    04-01-2019 21:42
25    04-01-2019 23:22    04-02-2019 00:23
29    04-02-2019 01:00    04-02-2019 06:15

这是我正在寻找的输出,其中每个时间间隔被分成每小时的时间间隔,可以跨越数小时,以此类推,例如:

ID       day         HR    Minutes
4     04-01-2019     13    2
4     04-01-2019     13    4
4     04-01-2019     14    1
4     04-01-2019     14    5
4     04-01-2019     14    2
22    04-01-2019     20    27
22    04-01-2019     21    33
25    04-01-2019     23    28
25    04-02-2019     0     23
29    04-02-2019     1     60
29    04-02-2019     2     60
29    04-02-2019     3     60
29    04-02-2019     4     60
29    04-02-2019     5     60
29    04-02-2019     6     15

【问题讨论】:

  • 你用的是什么版本的 MySQL?
  • 我使用的是5.5版本

标签: mysql sql datetime


【解决方案1】:

您可以尝试TIMESTAMPDIFF(unit,datetime_expr1,datetime_expr2),然后在原始表格中添加一个新列以显示每个会话的总持续时间(以分钟为单位)。

我认为您可能会在每个新的一天的 00:00 拆分数据,从而弄乱您的数据。 你这样做基本上是说会话 id 为 25 的用户有两个会话,而实际上他/她有一个会话,它在一天开始并在另一天结束。

如果这是一个要求,那么原始表可能需要重新设计。

【讨论】:

猜你喜欢
  • 2022-01-20
  • 1970-01-01
  • 2021-02-16
  • 2020-08-02
  • 2019-02-12
  • 1970-01-01
  • 2012-07-23
  • 2022-01-25
  • 1970-01-01
相关资源
最近更新 更多