Я хочу разделить дату определенного интервала на 10 частей и запросить количество для каждой части в MySQL - PullRequest
0 голосов
/ 08 октября 2011

У меня есть стол.

И у него есть два поля id и datetime.

Что мне нужно сделать, так это то, что для любых двух заданных дат времени мне нужно разделить временной диапазон на 10 равных интервалов и дать количество строк каждого интервала.

Пожалуйста, дайте мне знать, возможно ли это без использования внешней поддержки таких языков, как java или php.

Ответы [ 2 ]

1 голос
/ 08 октября 2011
select ((UNIX_TIMESTAMP(date_col) / CAST((time2 - time1)/10) AS INT) + time1), count(id) from my_table where date_col >= time1 AND date_col <= time2 GROUP BY ((UNIX_TIMESTAMP(date_col) / CAST((time2 - time1)/10) AS INT) + time1)

Я не проверял это. Но что-то вроде этого должно работать.

0 голосов
/ 08 октября 2011

Самый простой способ разделить интервалы дат - это хранить их как длинные (т. Е. Число тиков от «начала времени»). Насколько я знаю, нет никакого способа сделать это, используя дату и время MySQL.

То, как вы решите это сделать, в конечном итоге зависит от вашего приложения. Я хотел бы хранить их как longs и иметь любой интерфейс, который вы используете, чтобы конвертировать в более читаемый формат.

Что именно вы имеете в виду, давая количество строк каждого интервала? Эта часть не имеет смысла для меня.

...