Sqlite查询,将da​​tetime字段与当前日期时间进行比较

时间:2012-04-27 04:37:15

标签: iphone objective-c ios sqlite datetime

在我的iPhone应用程序中,我想查询过去的记录。有一个datetime字段,名为“task_dateTime”。如果使用,     从任务中选择task_dateTime; 结果将如下所示,     2012年4月26日16:32     2012年4月27日16:38     2012年4月29日05:32

如何查询过去的记录。这意味着我想与“task_dateTime”字段与当前时间进行比较。

3 个答案:

答案 0 :(得分:3)

尝试select task_dateTime from tasks where task_dataTime < CURRENT_TIME;

答案 1 :(得分:1)

目前的日期:            NSDateFormatter * formatter = [[NSDateFormatter alloc] init];     [formatter setDateFormat:@“MM-dd-yyyy”];     NSString * dateString = [formatter stringFromDate:[NSDate date]];

[current_date setText:dateString]; // current_date将是TextBox的名称......

然后比较两个字符串...

by isequall to string

答案 2 :(得分:1)

我假设您正在寻找SQLite日期逻辑,您可以将日期逻辑放在where子句中。如果是这种情况,那么值得注意的是,SQLite甚至没有正确的日期/时间数据类型,如here所述。显然,一旦将其转换回Objective C,就可以使用NSDateFormatter对字符串进行一些转换,但是如果你想在SQL where子句中使用日期逻辑,那么你真的必须遵循SQLite的格式时间字符串在SQLite Date Time Functions中列出。

如果您想要一个人类可读格式的日期,您可以使用“YYYY-MM-DD HH:MM:SS”格式。请参阅下面的一些示例。您可以使用NSDateFormatter来获取它并将其转换为NSDate,然后您可以从中创建任何您想要的UI格式的日期字符串。

<强>更新

以下是一些示例SQL:

create table datetest (dt datetime);

insert into datetest values (datetime('now','-1 day'));
insert into datetest values (datetime('now'));
insert into datetest values (datetime('now','+1 day'));

select * from datetest;

select * from datetest where dt < datetime('now');

第一个select语句将检索所有三行。第二个只返回其中两个。