1

日付フィールドがあるテーブルに対してクエリを実行しようとしていますが、値の範囲に対してクエリを実行したいと考えています。 where 句は次のようになります。

[db executeQuery:@"select * from test where myDate BETWEEN date('now','-7 days') and date('now')"];

しかし、うまくいかないようです:(

4

1 に答える 1

3

テーブル宣言で列を使用した場合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 < ?非包括的一致が必要な場合に使用します。

于 2012-04-12T10:28:52.380 に答える