【问题标题】:Minutely/Hourly data PHP or SQL每分钟/每小时数据 PHP 或 SQL
【发布时间】:2016-03-28 04:46:58
【问题描述】:

我有这个专栏(日期时间类型)

Begin time
===================
2015-12-04 00:00:06
2015-12-04 00:00:09
2015-12-04 00:00:10
2015-12-04 00:00:13
2015-12-04 00:00:18
2015-12-04 00:00:22
2015-12-04 00:00:33
2015-12-04 00:00:47
2015-12-04 00:01:00
2015-12-05 00:01:00
2015-12-05 00:01:07
2015-12-06 00:01:09
2015-12-06 00:01:11
2015-12-06 00:01:32
2015-12-06 00:01:34
2015-12-07 00:02:00
2015-12-07 00:02:59

如何从列中获取每分钟/每小时的数据并将其分组如下:

Time                 | Count
00:00:00 - 00:00:59  | 8
00:01:00 - 00:01:59  | 7
00:02:00 - 00:02:59  | 2
00:03:00 - 00:03:59  | 0
...
23:59:00 - 23:59:59  | 0

我认为它与Grouping into interval of 5 minutes within a time range 不同,因为我需要从每个日期获取所有数据并将其汇总到 1 列中。 例如,我的列中有两个相似的数据,但日期不同

Begin time
================
2015-12-05 00:01:00
2015-12-06 00:01:09

从这些数据中,我需要这样的数据输出:

Time                 | Count
00:00:00 - 00:00:59  | 0
00:01:00 - 00:01:59  | 2
00:02:00 - 00:02:59  | 0
00:03:00 - 00:03:59  | 0
...
23:59:00 - 23:59:59  | 0

非常感谢大家的帮助!

【问题讨论】:

  • 将所有这些 . 更改为 -,这样您就可以在该列上本地使用 mysql 日期函数而无需任何转换。然后你可以使用group by date_format(time, '%H')按小时分组,然后使用order by date_format(time, '%i');按分钟排序

标签: php mysql datetime


【解决方案1】:

您可以使用DATE_FORMATGROUP BY 来获得:

SELECT 
    DATE_FROMAT(col_date, '%H:%m:00 - %H:%m:59') AS `Time`,
    COUNT(*) AS Count
FROM ..
GROUP BY `Time`

【讨论】:

  • 我仍然无法获得所有日期的摘要,但谢谢顺便说一句,非常感谢
  • 如果您需要所有日期,即使没有任何行,您也需要先生成所有分钟,即使它们没有项目。
  • 我实际上已经用一些函数生成了所有的分钟,我将显示并关闭这个问题,因为有些人会认为它看起来与stackoverflow.com/questions/4342370/… 相似:3
猜你喜欢
  • 1970-01-01
  • 2021-09-19
  • 1970-01-01
  • 1970-01-01
  • 2023-03-21
  • 2022-11-13
  • 2017-03-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多