2016-07-15 32 views

回答

1

這取決於日期格式。

INTEGER數字精確到秒。

TEXT值精確到毫秒。您可以在分數秒字段中指定更多數字,但內置函數將在前三位後忽略所有數字。

朱利安日數的分辨率比毫秒更好,但格式化它們時,內置函數不會輸出三位以上的小數位數。

1

https://www.sqlite.org/datatype3.html#section_2_2

SQLite沒有存儲類,用於存儲日期 和/或時間預留。取而代之的是,內置的SQLite 的日期和時間函數能夠存儲日期和時間爲TEXT,REAL或INTEGER 值:

TEXT爲ISO8601字符串(「YYYY-MM-DD HH:MM:SS .SSS「)。

REAL as Julian天數,自格林威治11月中午以來的天數 24,4714 B.C.根據預測的公曆。

INTEGER as Unix時間,自1970-01-01 00:00:00 UTC以來的秒數。 應用程序可以選擇以這些 格式中的任意一種格式存儲日期和時間,並使用內置日期和 時間函數在格式間自由轉換。

看來你可以用ISO8601字符串達到最高分辨率。這些字符串的準確性應該沒有問題,只要您不混合存儲表示。

+0

有趣的是,你知道關於使用朱利安天數的任何事嗎?我想他們應該是同樣的決議。這就是我正在使用的。謝謝! –

+0

如果你想要毫秒分辨率,你當然不應該使用Julian天數,因爲REAL是浮點數。查看「浮點精度」和[相關錯誤](http://floating-point-gui.de/)來查看我的意思。 – Caius