我在带有随机条目的mysql表中有一个DATETIME字段。我想选择对象组,并在有四个小时的间隙时将它们分开。理想情况下,我可以返回数组(或子组?)中每个组内的所有ID。
这似乎超出了我的SQL技能。
任何有趣的解决方案?
答案 0 :(得分:1)
SQL意味着对数据执行集合操作,而您要求的则涉及顺序处理。
所以,我建议按顺序处理它,而不是试图扭曲SQL来尝试这样做。我相信你有两个基本选择:
使用游标处理结果,从存储过程中的表中选择数据。
从您选择的外部独立语言(Java,C#,Python,PHP ......无论您的船上浮动)执行select语句,并在那里对数据进行适当分组。
< / LI> 醇>答案 1 :(得分:1)
您可以使用MySQL DATE_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)