NSString *insertSQL = [NSString stringWithFormat:@"INSERT INTO ADDEXPENSE(date, description, category, amount) VALUES (\"%@\", \"%@\", \"%@\",\"%@\")", fieldOne.text, fieldTwo.text,fieldThree.text , fieldFour.text];
我为fieldOne选择了一个日期选择器,保存数据工作正常。 但是如何在两个日期之间检索数据?
这是我使用的pickerview
UIDatePicker *picker = (UIDatePicker *)sender;
NSDate *dateSelected = [picker date];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateStyle:NSDateFormatterMediumStyle];
答案 0 :(得分:1)
我建议您在Date and Time Functions网站上阅读此SQLite。您可以调整这些函数以从 NSDate 保存的格式中检索unix-timestamp,而不是在 WHERE 子句中的SQL查询中使用它们。
答案 1 :(得分:1)
您可以构建一个sqlite查询来选择日期范围内的行。首先,您必须格式化为sql友好格式,如下所示:
NSDate * selected = [datePicker date];
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"yyyy-MM-dd"];
NSString * dateString = [dateFormat stringFromDate:selected];
NSString * sql = [[NSString alloc] initWithFormat:@"SELECT * FROM table WHERE (startdate <= '%@') AND (enddate >= '%@)", dateString, dateString];
等等。将它们插入表格时,您需要正确格式化日期。
答案 2 :(得分:1)
我也遇到了同样的问题。我必须在两个日期之间获取数据。但我将日期作为SQLite
中的字符串以'YYYY-MM-dd'
格式存储。然后我使用下面的查询来获取数据。 &安培;我得到了结果。在这里我只是将我的日期列转换为Date
类型。
SELECT * FROM tableName WHERE columnnName(Date) BETWEEN 'YYYY-MM-dd' and 'YYYY-MM-dd'
答案 3 :(得分:0)
首先,您必须检索日期并转换为nsdates。然后您必须使用日期中的比较功能检查每个行日期(是否在两个提到的日期之间)。
答案 4 :(得分:0)
以下是我正在做的iOS应用程序,它使用SQLite DB。
SELECT COUNT(carSold)
FROM cars_sales_tbl
WHERE date
BETWEEN '2015-04-01' AND '2015-04-30'
AND carType = "Hybrid"
它就像一个魅力! 希望有人可以使用它!
干杯!