2013-10-24 29 views
-1

如何轉換stringdatetime使用sqlsqlite如何將字符串轉換爲日期時間在sqlite中使用sql

在我的sqlite db中,puttime列是nvarchar類型,並將數據存儲爲null,空字符串,2013-10-23,2013-10-23 13:30:25,2013-10-24 9:30 :22

我用下面的查詢轉換,但「2013年10月24日九時三十分22秒」不能轉換成功,如何做到這一點:

select puttime, datetime(puttime) from tb_news 

結果:

PutTime datetime(puttime) 
2013-05-06   2013-05-06 00:00:00 
2013-10-23   2013-10-23 00:00:00 
2013-10-23 13:30:25 2013-10-23 13:30:25 
2013-10-23 18:00:00 2013-10-23 18:00:00 
2013-10-24 17:32:33 2013-10-24 17:32:33 
2013-10-24 22:49:43 2013-10-24 22:49:43 
2013-10-24 9:30:22 
2013-10-25 00:01:33 2013-10-25 00:01:33 

謝謝。

回答

-4
SimpleDateFormat format = new SimpleDateFormat(""dd-MM-yyyy"); 

SimpleDateFormat df2 = new SimpleDateFormat("yyyy-MM-dd"); 

date = df2.format(format.parse(str));

試試這個先生

+4

這些都不是SQLite的命令。 –

3

最近的日期/時間格式的SQLite預計是YYYY-MM-DD HH:MM:SS

看着你的數據,它接縫只有偏差是YYYY-MM-DD H:MM:SS

所以,讓我們只需添加一個0需要的時候:

SELECT puttime, DATETIME(
    CASE SUBSTR(puttime, 14, 1) WHEN ':' THEN puttime -- Found ':' after HH 
    ELSE SUBSTR(puttime, 1, 11)||'0'||SUBSTR(puttime, 12) END 
) FROM tb_news 
+0

感謝LS_dev,對於數據2013-10-24 9:30:22,你的回答非常正確。我很抱歉,我沒有明確提出問題,因爲puttime列是nvarchar類型,也許這個數據將是其他格式,並且datetime函數不能轉換,例如:2013-9-12 12:33: 20,2013-7-12,2013-8-8 9:20:30,2013-10-23 20:3:5,如果我用substr函數比較麻煩,你有更好的解決辦法嗎? – Net205

+0

SQLite不支持任何日期/時間類型。內置函數支持一些特定的格式。在你的情況下,我會將所有現有日期轉換爲'YYYY-MM-DD HH:MM:SS'並確保你的應用程序存儲了正確的格式化字符串。您也可以創建一個更正數據庫中插入日期的觸發器。 –

相關問題