我正在尝试对存在日期字段的表执行查询,并且我想查询一系列值where子句如下所示:
[db executeQuery:@"select * from test where myDate BETWEEN date('now','-7 days') and date('now')"];
但它似乎不起作用:(
答案 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 < ?
。