Sqlite查询,比较date时间字段与当前的date时间

在我的iPhone应用程序,我想查询过去的logging。 有一个名为“task_dateTime”的date时间字段。 如果使用,从任务中selecttask_dateTime; 结果看起来像这样,2012年4月26日16:32 2012年4月27日16:38 2012年4月29日05:32

我如何查询以前的logging。 这意味着我想用当前时间与“task_dateTime”字段进行比较。

尝试select task_dateTime from tasks where task_dataTime < CURRENT_TIME ;

@Sushita你的结果是这样的,2012年4月26日16:32 2012年4月27日16:38 2012年4月29日05:32。

你想要哪种格式的date? 正确描述我将给出一个完美的解决scheme。

对于当前date:NSDateFormatter * formatter = [[NSDateFormatter alloc] init]; [formatter setDateFormat:@“MM-dd-yyyy”]; NSString * dateString = [formatter stringFromDate:[NSDate date]];

[current_date setText:dateString]; // current_date将是你的TextBox的名字…

然后比较两个string…

通过isequall来串

我假设你正在寻找SQLitedate逻辑,你可以把date逻辑放在where子句中。 如果是这样的话,值得注意的是SQLite甚至没有适当的date/时间数据types,正如这里所讨论的。 很明显,你可以使用NSDateFormatter对string进行一些转换,但是如果你想在你的SQL where子句中使用date逻辑,那么你必须遵守SQLite对于时间string格式的指导。 SQLitedate时间函数 。

如果你想要一个可读的格式的date,你可以使用“YYYY-MM-DD HH:MM:SS”格式。 看下面的一些例子。 你可以使用NSDateFormatter把它转换成一个NSDate,然后你可以以你想要的任何格式创builddatestring。

更新:

这里是一些示例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语句将检索所有三行。 第二个只返回其中的两个。