2015-06-29 79 views
0

我有在SQLite數據庫表中檢索兩個日期列之間的差異問題之間的區別計算時返回null。當我使用CocoaMySQL MesaSQLite 3.0.9執行查詢時,我得到'NULL'結果。我有記錄與該列的值。 我的查詢是儒略日()和strftime()兩個日期

選擇 投((的strftime( '%s' 的,t.timestamp2)-strftime( '%s' 的,t.timestamp1))AS真實 )/ 60/60 AS經過 FROM時間戳AS t; SELECT(STRFTIME( '%s' 的,timestamp1) - STRFTIME( '%s' 的,timestamp2))從時間戳/ -3600其中objid = 3939

結果:空

選擇timestamp1,從時間戳其中timestamp2的objid = 3939.

結果:2014年1月29日上午二點55分00秒2014年1月29日上午3時00分00秒(意味着我有時間戳的表數據)

SELECT儒略日('現在') - julianday('1776-07-04');

結果:87287.5314

SELECT儒略日(timestamp1) - 從時間戳儒略日(timestamp2)其中objid = 3939

結果:NULL值

'timestamp1' & 'timestamp2' 在列'時間戳的表格,它具有值的記錄。

請給出一個解決方案,儘快解決這個問題。 我無法添加屏幕截圖。

回答

1

日戳如2014-01-29 02:55:00 AM不處於format understood by SQLite。只支持24h時間,您需要移除AM/PM。

除此之外,如果你打算在你的日期時間做數學,可以考慮首先將其存儲的格式,使得計算方便,快捷,可靠等unixepoch秒。

+0

謝謝回覆。我以這種方式選擇timestamp1,timestamp2,投((的strftime( '%s' 的,修剪(ts.timestamp2, 'AM/PM'))來完成 - 的strftime( '%s' 的,修剪(ts.timestamp1,「AM/PM')))AS實際)/ 60/60從objid = 3939的時間戳。這對我有效。 – Sreeni