如何在sqlite数据库中检索两个日期之间的日期

时间:2012-11-15 10:06:55

标签: objective-c ios sqlite

OrderDate是我的表中的日期类型字段,带有formate dd / MM / yy,这个字段属于表中的所有记录。

我只需要通过两个日期过滤这些订单,例如在'01 / 11/12'和'15 / 11/12'之间的 O.Order_Date 但是它也选择那些记录不属于11月和今年。

Here is the Result of query

任何人都可以指导我如何在两个日期之间获得正确的数据。

4 个答案:

答案 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';

Fiddle demo

答案 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