sql - Mysql DateTime 组按 15 分钟

标签 sql mysql datetime group-by

我有一个看起来像这样的表

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/

相关文章:

python - Django:截断日期时间没有结果

mysql - MySQL中的空IN子句参数列表

sql查表

sql - 如何从一个表的行获取值到另一个表的列

php - 使用mysql获取两组组的10条记录

javascript - SQL 查询上的 PHP AJAX 日期时间范围问题

java - 使用 java 将字符串插入到日期时间 mysql 列中。

sql - Oracle REGEXP_LIKE 匹配非数字字符

页面之间的 PHP session 变量

mysql - 连接数据 - 行到列?