Вопрос:

Mysql DateTime группа по 15 минут

sql mysql datetime group-by

8569 просмотра

3 ответа

705 Репутация автора

У меня есть таблица, которая выглядит так

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, чтобы показать в 14:15. Даже это может быть хорошим началом ... тогда с некоторой логикой я мог бы показать весь период. Спасибо!

Автор: Girish Dusane Источник Размещён: 27.11.2010 12:03

Ответы (3)


7 плюса

37663 Репутация автора

Решение

Один из способов - просто использовать >и <для того, чтобы получить все в пределах диапазона, но вам может показаться, что это проще:

SELECT ... 

GROUP BY ( 4 * HOUR( thistime ) + FLOOR( MINUTE( thistime ) / 15 )) 

с http://forums.mysql.com/read.php?10,202789,202807

Автор: James Black Размещён: 27.11.2010 12:10

7 плюса

71 Репутация автора

Вот решение, которое я использую:

SELECT  FROM_UNIXTIME(FLOOR( UNIX_TIMESTAMP(creationDate)/900 ) * 900) AS t, COUNT(*) FROM time_table GROUP BY t

Хотя это прибывает 4 года спустя, надеюсь, это будет кому-то полезно.

Автор: Chebe Размещён: 19.02.2014 04:36

5 плюса

2436 Репутация автора

Ответ 2 работает только в течение 24 часов - попробуйте этот;

SELECT ...

GROUP BY year(date),month(date),day(date),( 4 * HOUR( date ) + FLOOR( MINUTE( date ) / 15 )) 
Автор: PodTech.io Размещён: 03.09.2014 04:15
Вопросы из категории :
32x32