OrderDate是我的表中的日期类型字段,带有formate dd / MM / yy,这个字段属于表中的所有记录。
我只需要通过两个日期过滤这些订单,例如在'01 / 11/12'和'15 / 11/12'之间的 O.Order_Date 但是它也选择那些记录不属于11月和今年。
任何人都可以指导我如何在两个日期之间获得正确的数据。
答案 0 :(得分:3)
<强>查询强>
insert into test (t) select '2012-01-15';
insert into test (t) select '2012-11-16';
select * from test where t between '2012-01-01' and '2012-02-01';
答案 1 :(得分:2)
你应该尝试操作&gt;和&lt;。
例如: 其中O.Order_Date&gt; &#39 01/11/12&#39;和O.Order_Date&lt; &#39 15/11/12&#39;
答案 2 :(得分:2)
尝试其他格式:YYYY-MM-DD
O.Order_Date介于&#39; 2012-11-01&#39;和&#39; 2012-11-15&#39;
http://www.sqlite.org/lang_datefunc.html
Time Strings
A time string can be in any of the following formats:
YYYY-MM-DD
YYYY-MM-DD HH:MM
YYYY-MM-DD HH:MM:SS
YYYY-MM-DD HH:MM:SS.SSS
YYYY-MM-DDTHH:MM
YYYY-MM-DDTHH:MM:SS
YYYY-MM-DDTHH:MM:SS.SSS
HH:MM
HH:MM:SS
HH:MM:SS.SSS
now
DDDDDDDDDD
答案 3 :(得分:0)
如何从dd / MM / yy以YYYY / MM / DD制作((评论2,回答2))?
update tableName
set date =
'20' || substr(substr(date, instr(date, '/')+1), instr(substr(date, instr(date, '/')+1), '/')+1)
|| '/' ||
case when length(substr(date, instr(date, '/')+1, instr(substr(date, instr(date, '/')+1),'/')-1))=2
then substr(date, instr(date, '/')+1, instr(substr(date, instr(date, '/')+1), '/')-1)
else '0'||substr(date, instr(date, '/')+1, instr(substr(date, instr(date, '/')+1), '/')-1)
end
|| '/' ||
case when length(substr(date,1, instr(date, '/')-1 )) =2
then substr(date,1, instr(date, '/')-1 )
else '0'||substr(date,1, instr(date, '/')-1 )
end
否则,请查看最后两个答案here