[英]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.