FMDB如何在Sqlite iPhone dev上查询日期范围内的数据

时间:2012-04-12 09:47:32

标签: iphone ios sqlite date fmdb

我正在尝试对存在日期字段的表执行查询,并且我想查询一系列值where子句如下所示:

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

但它似乎不起作用:(

1 个答案:

答案 0 :(得分:3)

如果您将DATETIME列与表声明一起使用,则可以执行以下操作:

[db executeQuery:@"SELECT * FROM test WHERE myDate BETWEEN ? and ?", [[NSDate dateWithTimeInterval:-86400*7 sinceDate:[NSDate date]], [NSDate date]];

请注意,-86400是一天中的几秒,负数表示“天前”,就像您的问题一样。

另请注意,BETWEEN语法包含您设置日期的第二个。如果您需要不包含匹配,请使用WHERE myDate > ? and myDate < ?