0

我在一个带有随机条目的 mysql 表中有一个 DATETIME 字段。我想选择对象组,并在有四个小时的间隔时将它们分开。理想情况下,我可以返回数组(或子组?)中每个组内的所有 ID。

这似乎超出了我的 SQL 技能。

有什么有趣的解决方案吗?

4

2 回答 2

1

您可以使用 MySQLDATE_FORMAT子句。

例子

SELECT CAST(DATE_FORMAT(date,'%Y-%m-%d %k:00:00') AS DATETIME) hour
  FROM table
 WHERE date = CURRENT_DATE - INTERVAL 4 HOUR
  GROUP BY CAST(DATE_FORMAT(date,'%Y-%m-%d %k:00:00') AS DATETIME)
于 2013-02-27T04:18:07.880 回答
1

SQL 旨在对数据执行集合操作,而您所要求的涉及顺序处理。

所以,我建议按顺序处理它,而不是试图扭曲 SQL 来尝试这样做。我相信你有两个基本的选择:

  1. 在存储过程中从表中选择数据,使用游标处理结果。

  2. 从您选择的外部独立语言(Java、C#、Python、PHP ......无论您喜欢什么)执行一个 select 语句,并在那里对数据进行适当的分组。

于 2013-02-27T02:38:20.603 回答