我需要获得所有相同且低于2014-08-31并且大于2014-08-01的记录我使用了下面的查询,有没有人有想法?
createdDate
2014-08-01 05:14:52
2014-08-27 05:15:08
2014-08-29 02:54:06
2014-08-30 05:57:12
2014-08-31 07:56:13
表值
2014-08-01 05:14:52
2014-08-27 05:15:08
2014-08-29 02:54:06
2014-08-30 05:57:12
我的输出是
{{1}}
我无法得到2014-08-31 07:56:13这个值。 请有人知道为什么会这样吗?
答案 0 :(得分:2)
问题是'2014-08-31'
被解释为'2014-08-31 00:00:00'
最快的解决方案是:
SELECT * FROM table where user_id = 322 and createdDate > '2014-08-01' and createdDate < '2014-09-01';
这将在9月1日之前列出所有内容。
正确的解决方案是使用日期而不是字符串。
答案 1 :(得分:2)
这应该解决..
SELECT * FROM table where user_id = 322 and
createdDate >= str_to_date('08/01/2014 00:00:00','%m/%d/%Y %H:%i:%s')
and createdDate <= ('08/31/2014 23:59:59','%m/%d/%Y %H:%i:%s');
答案 2 :(得分:0)
当您将日期与 DateTime 字段进行比较时,试试这个。
SELECT * FROM table where user_id = 322 and Date(createdDate) > '2014-08-01' and Date(createdDate) <= '2014-08-31';