2014-02-11 43 views
2

我希望我的日期時間的表列%Y-%m-%d %H:%M:%S格式如何格式化查詢中的DateTime列sqlite?

我使用

SELECT AIRPORT_NAME , strftime('%Y-%m-%d %H:%M:%S', 'CREATETS')as crts FROM AIRPORT_MASTER where AIRPORT_MASTER_ID = 1; 

CREATETS是 「21-03-2011 12:00:00.000000」 有數據我datetime列格式

這是查詢,但在我的情況下工作不正常,sqlite不顯示任何錯誤,但在這種情況下沒有輸出 幫助我獲得

「2011-03-21 08:55:36」作爲輸出格式

+0

你可以從任何格式的數據庫獲取日期(就像字符串)然後轉換它不同的日期格式在android .. –

+0

,但我不能在查詢本身?..所以我可以保存我的代碼行 –

+0

@ AditiK閱讀http://stackoverflow.com/questions/10832864/compare-dates-stored-as-string-in-android-sqlite-database –

回答

3

首先,'CREATETS'是一個字符串文字而不是列名稱。如果您需要參考列,請刪除''引號。

其次,21-03-2011 12:00:00.000000不是time string as understood by sqlite,並試圖使用日期時間函數轉換它將導致null。

從技術上講,可以將您的日期時間值轉換爲由sqlite使用SUBSTR()可理解的時間字符串來提取部分值並重新排序字段。

但是,SQL不是放置演示文稿/格式代碼的正確位置。請改用Java代碼。此外,如果您僅將時間戳存儲爲「原始」格式(例如unix timestamp(自epoch以來的秒數)或Java毫秒時間戳而非格式化的字符串),則會更容易。

+0

當你存儲原始時間戳時,你還需要將時間區域存儲在另一列中。因此,通用的時區感知dateformat更容易。 – Christian