Выбор записей между двумя датами - PullRequest
4 голосов
/ 13 июня 2011

У меня следующий запрос:

SELECT dm.app_id, apt.app_name, COUNT(dm.app_id) 
FROM dm_openapp dm
JOIN app_table apt ON dm.app_id = apt.app_id
GROUP BY dm.app_id 

По сути, эта таблица также имеет даты, связанные с каждой записью, и мне нужно получить диапазон всех записей между временем X и Y, я попытался использоватьнапример, но безрезультатно:

WHERE dm.dl_time BETWEEN '2011-05-31' AND '2011-05-06'

Есть идеи о том, что делать?столбец dl_time имеет тип отметки времени.

Ответы [ 3 ]

7 голосов
/ 13 июня 2011

Для этих целей лучше использовать тип столбца DATETIME.Чем это должно работать: используйте функцию str_to_date () .Также поменяйте местами значения МЕЖДУ.

WHERE dm.dl_time BETWEEN str_to_date('2011-05-06','%Y-%m-%d') AND str_to_date('2011-05-31','%Y-%m-%d')
4 голосов
/ 13 июня 2011

Ммм ... у вас неверные данные.BETWEEN должно быть от НИЗКОГО значения до ВЫСОКОГО значения:

Попробуйте:

WHERE dm.dl_time BETWEEN '2011-05-06' AND '2011-05-31' -- Note date values swapped

Вы можете игнорировать другие ответы, которые также не заметили этого ...

0 голосов
/ 13 июня 2011

Вам необходимо преобразовать строки в предложении where в дату STR_TO_DATE. Вот множество различных функций в MySQL, которые вы можете использовать для манипуляции DATE.

http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...