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子句是什么样子的?