Mysql日期时间组15分钟

Mysql日期时间组15分钟,sql,mysql,datetime,group-by,Sql,Mysql,Datetime,Group By,我有一张像这样的桌子 CREATE TABLE `time_table` ( `id` INT(10) NOT NULL AUTO_INCREMENT, `creationDate` DATETIME NOT NULL, PRIMARY KEY (`id`) ) SELECT FLOOR(UNIX_TIMESTAMP(creationDate)/900) AS t, COUNT(*) FROM time_table GROUP BY t t COUNT(*) 143

我有一张像这样的桌子

CREATE TABLE `time_table` (
 `id` INT(10) NOT NULL AUTO_INCREMENT,
 `creationDate` DATETIME NOT NULL,
 PRIMARY KEY (`id`)
)
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
我基本上将某些记录的创建时间存储在表中。我知道,若我想获得15分钟内创建的记录数,我会使用类似的方法

CREATE TABLE `time_table` (
 `id` INT(10) NOT NULL AUTO_INCREMENT,
 `creationDate` DATETIME NOT NULL,
 PRIMARY KEY (`id`)
)
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
这给了我类似的东西

CREATE TABLE `time_table` (
 `id` INT(10) NOT NULL AUTO_INCREMENT,
 `creationDate` DATETIME NOT NULL,
 PRIMARY KEY (`id`)
)
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年后到达,但希望它对某人有用

答案2只在24小时内有效-试试这个

SELECT ...

GROUP BY year(date),month(date),day(date),( 4 * HOUR( date ) + FLOOR( MINUTE( date ) / 15 )) 

+1对于简单干净的解决方案,但这里出现了问题,计数不正确。。。(在select…)中,它只能工作24小时…@Dani-你的where子句是什么样子的?