2017-04-08 11 views
0

日付と日付に基づいてSQLiteデータベースからレコードをフェッチしようとしています。 例:出生日が2月2日から3月5日のレコードを取得します。 問題は、DOB列には人の誕生日年も格納されているため、レコードをフェッチする年は考慮したくありません。 データベースにDOBを格納する形式は、DD-mm-YYYY(02-02-1990)です。日付から日付に基づいてSqliteからレコードをフェッチする方法

答えて

1

他の2つの列を作成します。これには、曜日と月だけが格納されます。 [クエリの例は、

select * from table1 where day between 1 and 5 and month between 2 and 5 
+0

おかげで、それは簡単なソリューションです。 –

+0

このクエリーは、2月10日から6月10日までの日が同じ場合は機能しません。新しい回答のクエリの下にこのバグを解決しました。 –

1
//Concatenate MonthDayFields and use between statement to fetch records 

// This Query will Fetch Records From 5 Oct to 5 Apr 

SELECT *,substr('00'||DOB_Month,-2,2) || substr('00'||DOB_Day, -2, 2) 
as 'myField' FROM Table1 
WHERE (myField BETWEEN "1005" AND "1231") OR (myField BETWEEN "0101" AND "0405") 


// This Query will Fetch Records From 5 Apr to 18 Oct 

SELECT *,substr('00'||DOB_Month,-2,2) || substr('00'||DOB_Day, -2, 2) 
as 'myField' FROM Table1 
WHERE myField between "0405" and "1018" 
関連する問題