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]];

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

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

于 2012-04-12T10:28:52.380 回答