问题
I have this query, i need to select all records between two dates, the mysql table is a datetime format.
I tried this but it didn't work.
select * from cdr
WHERE calldate BETWEEN '2012-12-01' AND '2012-12-03';
回答1:
Try this instead:
select * from cdr
WHERE DATE(calldate) BETWEEN '20121201' AND '20121203';
回答2:
Try this query -
SELECT * FROM cdr WHERE calldate BETWEEN str_to_date('2012-12-01','%Y-%m-%d') AND str_to_date('2012-12-03','%Y-%m-%d');
回答3:
The above will work great. If you wanted to add extra conditions, normal Boolean logic works with date/time as well so you could do something like
...
where DATE(calldate) < '20121201' AND DATE(calldate) >= '20121203' OR DATE(calldate) = '20121205'
Just a simple example.
来源:https://stackoverflow.com/questions/13686274/select-all-records-between-two-datetime-format