Группировать по дате в столбце, в котором хранится метка времени в длинном (bigint) - PullRequest
2 голосов
/ 03 ноября 2011

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

Таблица:

Column   |  type
----------------
id       |  Long (bigint)
name     |  String (varchar)
time     |  Long  (bigint)

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

select time,count(*) from my_table mt group by time;

Как я могу сгруппировать по дате в запросе выше?

Еще одна вещь, которую я собираюсь использовать этот запрос в спящем режиме, так что мне нужен запрос, который также может быть написан на hql.

Ответы [ 2 ]

2 голосов
/ 03 ноября 2011

Прежде всего мы конвертируем нашу метку времени в дату, а затем группируем по дате!

select mt.time,count(*) from my_table mt group by DATE( FROM_UNIXTIME( mt.time ));

в надежде, что это сработает. приветствие:)

1 голос
/ 03 ноября 2011
SELECT DATE(FROM_UNIXTIME(`time`)) AS date_from_time, COUNT(1)
FROM my_table
GROUP BY date_from_time
...