我有一个看起来像这样的表
CREATE TABLE `time_table` (
`id` INT(10) NOT NULL AUTO_INCREMENT,
`creationDate` DATETIME NOT NULL,
PRIMARY KEY (`id`)
)
我基本上把某些记录的创建时间存储在表中。我知道如果我想计算在 15 分钟间隔内创建的记录数,我将使用类似这样的方法
SELECT FLOOR(UNIX_TIMESTAMP(creationDate)/900) AS t,
COUNT(*) FROM time_table
GROUP BY t
这给了我这样的东西
t COUNT(*)
1434187 1
1434188 3
1434189 2
1434190 2
我如何理解第一列?如果我想让它显示类似的内容
t COUNT(*)
2:00pm - 2:15pm 1
2:15pm - 2:30pm 3
2:30pm - 2:45pm 2
2:45pm - 3:00pm 2
我知道通过一些操作我可以让 1434187 在下午 2:15 出现。即使那可能是一个好的开始......然后我可以通过一些逻辑展示整个时期。谢谢!
最佳答案
这是我使用的解决方案:
SELECT FROM_UNIXTIME(FLOOR( UNIX_TIMESTAMP(creationDate)/900 ) * 900) AS t, COUNT(*) FROM time_table GROUP BY t
虽然它在 4 年后到达,但希望它对某人有用。
关于sql - Mysql DateTime 组按 15 分钟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4289345/