日付フィールドがあるテーブルに対してクエリを実行しようとしていますが、値の範囲に対してクエリを実行したいと考えています。 where 句は次のようになります。
[db executeQuery:@"select * from test where myDate BETWEEN date('now','-7 days') and date('now')"];
しかし、うまくいかないようです:(
テーブル宣言で列を使用した場合DATETIME
、これを行うことができます:
[db executeQuery:@"SELECT * FROM test WHERE myDate BETWEEN ? and ?", [[NSDate dateWithTimeInterval:-86400*7 sinceDate:[NSDate date]], [NSDate date]];
1日の秒数であることに注意してください-86400
。負の数は、質問のように「数日前」を示します。
BETWEEN
また、構文には、設定した日付の秒が含まれることにも注意してください。WHERE myDate > ? and myDate < ?
非包括的一致が必要な場合に使用します。