2011-11-15 37 views
1
NSString *insertSQL = [NSString stringWithFormat:@"INSERT INTO ADDEXPENSE(date, description, category, amount) VALUES (\"%@\", \"%@\", \"%@\",\"%@\")", fieldOne.text, fieldTwo.text,fieldThree.text , fieldFour.text]; 

我已经采取了fieldOne日期选择器和保存数据工作正常。 但如何检索两个日期之间的数据?SQLite查询检索两个日期之间的数据保存为字符串

,这是我用

UIDatePicker *picker = (UIDatePicker *)sender; 
NSDate *dateSelected = [picker date]; 
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
[dateFormatter setDateStyle:NSDateFormatterMediumStyle]; 
+0

你有问题的解决方案吗? –

回答

0

首先你要获取日期和转换成nsdates.Then你必须检查每行日期(无论是与上面提到的两个日期的的pickerview或不)使用日期中的比较函数。

+0

可以请你提供一点我的代码吗? – Chandu

1

我建议您在SQLite网站上阅读Date and Time Functions。您可以修改这些函数以从NSDate保存的格式中检索unix时间戳,并在WHERE子句中简单地在您的SQL查询中使用它们。

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

等等。将它们插入表格时,需要正确格式化日期。

1

我也坚持同样的问题。我必须在两个日期之间取数据。但是我将这个格式的日期存储为SQLite中的字符串'YYYY-MM-dd'。然后我使用下面的查询来获取数据。 &我得到了结果。在这里,我只是将我的日期列改为Date类型。

SELECT * FROM tableName WHERE columnnName(Date) BETWEEN 'YYYY-MM-dd' and 'YYYY-MM-dd' 
0

以下是关于我在做的使用SQLite DB的iOS应用程序。

SELECT COUNT(carSold) 
FROM cars_sales_tbl 
WHERE date 
BETWEEN '2015-04-01' AND '2015-04-30' 
AND carType = "Hybrid" 

它就像一个魅力! 希望有人能够使用它!

干杯!

相关问题