2

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

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

4

3 回答 3

3

试试select task_dateTime from tasks where task_dataTime < CURRENT_TIME

于 2012-04-27T05:21:26.547 回答
1

对于当前日期: NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; [格式化程序 setDateFormat:@"MM-dd-yyyy"]; NSString *dateString=[格式化字符串FromDate:[NSDate date]];

[current_date setText:dateString]; //current_date 将是您的文本框的名称...

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

by isequal to string

于 2012-04-27T05:56:49.147 回答
1

我假设您正在寻找 SQLite 日期逻辑,您可以将日期逻辑放在一个where子句中。如果是这种情况,值得注意的是 SQLite 甚至没有正确的日期/时间数据类型,如此所述。显然,一旦您将字符串恢复为 Objective C,您就可以使用 NSDateFormatter 对字符串进行一些转换,但是如果您想要在 SQLwhere子句中使用日期逻辑,那么您真的必须遵守 SQLite 对 SQLite 中概述的时间字符串格式的指导日期时间函数

如果你想要一个人类可读格式的日期,你可以使用类似“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 语句将检索所有三行。第二个只返回其中两个。

于 2012-04-27T06:18:43.140 回答