簡體   English   中英

SQLite查詢,將da​​tetime字段與當前日期時間進行比較

[英]Sqlite query, compare datetime field with current date time

在我的iPhone應用程序中,我想查詢過去的記錄。 有一個名為“ task_dateTime”的日期時間字段。 如果使用,請從任務中選擇task_dateTime; 結果將如下所示:2012年4月26日16:32 2012年4月27日16:38 2012年4月29日05:32

我如何查詢過去的記錄。 這意味着我想將“ task_dateTime”字段與當前時間進行比較。

嘗試select task_dateTime from tasks where task_dataTime < CURRENT_TIME ;的select task_dateTime from tasks where task_dataTime < CURRENT_TIME

對於當前日期:NSDateFormatter * formatter = [[NSDateFormatter alloc] init]; [格式器setDateFormat:@“ MM-dd-yyyy”]; NSString * dateString = [格式符stringFromDate:[NSDate日期]];

[current_date setText:dateString]; // current_date將是您的TextBox的名稱...

然后比較兩個字符串...

通過等值於字符串

我假設您正在尋找SQLite日期邏輯,可以在where將日期邏輯放在where子句中。 如果是這樣的話,這是值得注意的是,SQLite的,甚至沒有一個適當的日期/時間數據類型,如討論在這里 顯然,一旦將其返回到目標C,就可以使用NSDateFormatter對字符串進行一些轉換,但是,如果您想在SQL where子句中使用日期邏輯,那么您確實必須遵守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語句將檢索所有三行。 第二個僅返回其中兩個。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM