我正在開發一個將數據保存到SQLite3數據庫的iPhone應用程序。在iPhone應用程序中將日期保存到SQLite3
對於每一行我堅持我想包括「創建日期」和「最後修改日期」
我的問題是什麼是存儲在表此信息推薦的方法嗎?
屬性在我的應用程序中表示爲NSDate,但我不確定如何在表格中表示這些信息。
看來,SQLite3提供了一種DATETIME類型,但對如何解析這些信息沒有本質的理解。
任何幫助將不勝感激。
在此先感謝。
我正在開發一個將數據保存到SQLite3數據庫的iPhone應用程序。在iPhone應用程序中將日期保存到SQLite3
對於每一行我堅持我想包括「創建日期」和「最後修改日期」
我的問題是什麼是存儲在表此信息推薦的方法嗎?
屬性在我的應用程序中表示爲NSDate,但我不確定如何在表格中表示這些信息。
看來,SQLite3提供了一種DATETIME類型,但對如何解析這些信息沒有本質的理解。
任何幫助將不勝感激。
在此先感謝。
我通常使用雙,是這樣的:
sqlite3_bind_double(statement, index, [dateObject timeIntervalSince1970]);
其中dateObject是一個NSDate *。然後,走出DB的數據的情況下,使用
[NSDate dateWithTimeIntervalSince1970:doubleValueFromDatabase];
According to the docs沒有DATETIME數據類型!我使用實數數據類型並使用timeIntervalSinceReferenceDate方法將NSDate轉換爲實數。
商店作爲典型的C-時間在UNSIGNED INT列(例如由時間返回的time_t的/ int值())的值。轉換像drewh用的NSDate說:
- timeIntervalSince1970
- dateWithTimeIntervalSince1970:(double)value
除了存儲爲一個整數,除非需要子第二粒度(其大體爲創建的通/最後一次修改,是矯枉過正)。未簽名的整數比雙精度要小很多,處理起來也比較容易。雖然這在大多數桌面和Web應用程序中可能已經不再重要,但它對iPhone確實有幫助。每一點幫助。
大多數人沒有意識到的C時代的一個好處是它們是時區不可知的。如果你需要支持多個時區,這個派上用場。
我轉換到/自ISO8601字符串:http://en.wikipedia.org/wiki/ISO_8601
遠更readible /比時間間隔被破解。
在這裏相同。當然這是更重的空間,但在調試會話中閱讀更好。 – bwinton 2008-10-31 00:24:47
我試圖用FMDatabase訪問,但我使用的是圖形用戶界面,每一次我沒有得到任何記錄進入記錄。請檢查我的問題,並建議:http://stackoverflow.com/questions/8772601/date-entry-into-database-through-gui-for-date-which-is-readable-by-fmdatabase – 2012-01-07 20:00:42