OrderDate は、私のテーブルの日付型フィールドで、形式は dd/MM/yy であり、これはテーブル内のすべてのレコードに属するフィールドです。
「 01/11/12」と「15/11/12」の間の O.Order_Date のような 2 つの日付でフィルターされた注文のみを取得する必要がありますが、11 月と今年に属さないレコードも選択します。
2 つの日付の間で正しいデータを取得する方法を教えてください。
OrderDate は、私のテーブルの日付型フィールドで、形式は dd/MM/yy であり、これはテーブル内のすべてのレコードに属するフィールドです。
「 01/11/12」と「15/11/12」の間の O.Order_Date のような 2 つの日付でフィルターされた注文のみを取得する必要がありますが、11 月と今年に属さないレコードも選択します。
2 つの日付の間で正しいデータを取得する方法を教えてください。
クエリ
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';
> と < の操作も試してみてください。
例: O.Order_Date > '01/11/12' および O.Order_Date < '15/11/12'
別の形式を試してください: YYYY-MM-DD
'2012-11-01' と '2012-11-15' の間の O.Order_Date
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
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
そうでなければ、ここで最後の2つの答えを見てください