3

OrderDate 是我表中的日期类型字段,格式为 dd/MM/yy,该字段属于表中的所有记录。

我只需要按两个日期(例如“01/11/12”和“15/11/12”之间的 O.Order_Date )过滤那些订单,但它还选择不属于 11 月和今年的那些记录。

这是查询的结果

谁能指导我如何在两个日期之间获得正确的数据。

4

4 回答 4

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

小提琴演示

于 2012-11-15T10:40:39.840 回答
2

您还应该尝试操作 > 和 <。

例如:其中 O.Order_Date > '01/11/12' 和 O.Order_Date < '15/11/12'

于 2012-11-15T10:18:26.743 回答
2

尝试其他格式:YYYY-MM-DD

O.Order_Date 在 '2012-11-01' 和 '2012-11-15' 之间

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
于 2012-11-15T10:19:30.320 回答
0

如何从 dd/MM/yy((评论 2,答案 2))在 YYYY/MM/DD 中​​制作它?

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

否则看这里的最后两个答案

于 2016-12-22T04:54:10.807 回答