私は2つの列の開始と終了があるというデータベースを持っています。start と end は DD.MM.YYYY 形式です。
DD.MM.YYYY 形式の日付もあります。日付が開始と終了の間にあることを確認するにはどうすればよいですか。
これらの条件を確認し、他の列からデータを取得するためのクエリを提案してください。
yyyy-mm-dd
Jon Skeet が書いたように、日付を形式で保存する必要がありました。
ただし、フィールドを並べ替えることで、日付値をその場で適切な日付値に変換できる場合があります (文字列内のフィールドが固定長の場合)。
SELECT *
FROM MyTable
WHERE '2013-03-11' BETWEEN substr(StartDate, 7, 4) || '-' ||
substr(StartDate, 4, 2) || '-' ||
substr(StartDate, 1, 2)
AND substr(EndDate, 7, 4) || '-' ||
substr(EndDate, 4, 2) || '-' ||
substr(EndDate, 1, 2)
以下のコードを使用してください。2つの日付の間の日数を返します。日付の形式はYYYY-MM-DDです。
YourDatabse database=new YourDatabse (getApplicationContext(), 1);
SQLiteDatabase sqlite=database.getReadableDatabase();
Cursor fetch=sqlite.rawQuery("SELECT julianday('"+date2+"') - julianday('"+date1+"')", null);
fetch.moveToFirst();
sqlite.close();
int noOfDays=fetch.getInt(0);