Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Selecting records between two dates

Tags:

date

mysql

I have the following query:

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 

Basically this table also has dates associated to each record, and I need to get a range of all the records between time X and Y, I tried using the following, for example, but to no avail:

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

Any idea as to what to do? the dl_time column is a timestamp type.

like image 568
Itai Sagi Avatar asked Dec 10 '22 08:12

Itai Sagi


2 Answers

It is better to use DATETIME column type for these things. Than this should work: use str_to_date() function. Also, swap the BETWEEN values.

WHERE dm.dl_time BETWEEN str_to_date('2011-05-06','%Y-%m-%d') AND str_to_date('2011-05-31','%Y-%m-%d')
like image 78
Erveron Avatar answered Dec 15 '22 00:12

Erveron


Ummm... you've got the data the wrong way around. BETWEEN must be LOW value to HIGH value:

Try this:

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

You can ignore the other answers, which also haven't noticed this...

like image 29
Bohemian Avatar answered Dec 14 '22 22:12

Bohemian