我正在尝试检索两个日期之间的所有记录,并且MySQL查询正在带回完全不同日期的记录。MySQL返回两个日期之间的所有记录
我查询
SELECT datecreated FROM TABLE_COMPLAINTS WHERE datecreated BETWEEN '01/08/2015' AND '24/08/2015'
从查询结果是这样的:
正如你可以告诉返回的日期是不是在SQL查询中指定的边界。
我的问题是我该如何解决这个问题?
我正在尝试检索两个日期之间的所有记录,并且MySQL查询正在带回完全不同日期的记录。MySQL返回两个日期之间的所有记录
我查询
SELECT datecreated FROM TABLE_COMPLAINTS WHERE datecreated BETWEEN '01/08/2015' AND '24/08/2015'
从查询结果是这样的:
正如你可以告诉返回的日期是不是在SQL查询中指定的边界。
我的问题是我该如何解决这个问题?
试试这个
SELECT datecreated FROM TABLE_COMPLAINTS WHERE datecreated BETWEEN
to_date('01/08/2015','MM/DD/YYYY') AND to_date('24/08/2015','MM/DD/YYYY')
解决方案2
SELECT datecreated FROM TABLE_COMPLAINTS WHERE datecreated >='01/08/2015' AND datecreated <= '24/08/2015'
解决方案3
SELECT datecreated FROM TABLE_COMPLAINTS
where
datecreated >='01/08/2015 06:42:10' and datecreated <='24/08/2015 06:42:50';
原谅我我没有看到时间部分我认为它是一个不同的列。这应该工作(我有时间现场混乱,看看是否有您的所有时间都在12个一差)
用函数to_date响应的查询不存在。 – thomasjcf21
这一个应该这样做:SELECT datecreated FROM TABLE_COMPLAINTS WHERE datecreated> ='01/08/2015'和datecreated <= '24/08/2015' –
查询返回的结果与上图完全相同。 – thomasjcf21
给这个格式的尝试:
SELECT datecreated
FROM TABLE_COMPLAINTS
WHERE datecreated BETWEEN '2015-08-01' AND '2015-08-24'
SELECT datecreated
FROM TABLE_COMPLAINTS
WHERE datecreated BETWEEN
STR_TO_DATE('01/08/2015','%d-%m-%Y')
and STR_TO_DATE('24/08/2015','%d-%m-%Y');
SELECT datecreated
FROM TABLE_COMPLAINTS
WHERE datecreated >= '2015-08-01 00:00:00'
AND datecreated < '2015-08-25 00:00:00'
;
你可以做BETWEEN '2015-08-01 00:00:00' AND '2015-08-24 23:59:59'
;但如果MySQL开始在这些领域存储更精确的数据,它可能会在将来引发问题。
试试这个:
SELECT datecreated FROM TABLE_COMPLAINTS WHERE CAST(datecreated as DATE) BETWEEN '20150801' AND '20150824'
这是假设你的dateCreated会列是DateTime类型
select * from TABLE_COMPLAINTS where date(datecreated)
between STR_TO_DATE('01/08/2015',"%d/%m/%Y") and
STR_TO_DATE('24/08/2015',"%d/%m/%Y") ;
什么数据类型是'datecreated'列? – Phil
数据类型为DateTime – thomasjcf21
@ thomasjcf21:你的接受答案如何给出错误的输出...... !!退房http://sqlfiddle.com/#!9/eb08c/3 – seahawk