2011-05-12 60 views
6

2個問題:SQLite的查詢問題

首先,MSSQL,我可以通過做

cast('5/31/2011 12:00:00 AM' as datetime) as convertedtodate 

結果爲nvarchar轉換爲日期時間:2011-05-31 00:00:00.000

如何我在SQLite中做?

二,sqlite的功能相當於MS SQL的datediff?例如: -

datediff(Day,'5/30/2011 12:00:00 AM','5/31/2011 12:00:00 AM') as DateAge 

結果:1

回答

5

要回答你的第一個問題(字符串轉換爲日期),答案是「這取決於」。由於SQLite沒有特定的日期字段,因此您可能不需要轉換它。您可以將它存儲在一個字符串字段中(對於日期存儲,選項是sting,real或int)。如果你想將字符串轉換爲int(這將是自1970-01-01的秒數),你可以使用strftime方法,像這樣:

strftime('%s','2011-05-12 01:03:00') 

至於你的問題的第二部分(兩個日期之間的差異),你可以在SQLite中使用下面的代碼:

strftime('%s','2011-05-12 01:03:00') - strftime('%s','2011-05-08 11:54:09') 

這會給你兩個日期之間的秒數。你可以玩弄這些信息,以及更多,從SQLite中得到你正在尋找的東西。這裏有幾個資源,這將幫助你:

http://www.sqlite.org/cvstrac/wiki?p=DateAndTimeFunctions

http://www.sqlite.org/datatype3.html

+0

我試圖用這個,但它不work..use sqlite的管理員看到的結果... – BizApps 2011-05-12 08:10:15

+0

@約翰瑞恩 - 你是什​​麼意思,它不起作用。我試過了,它爲我工作。第一次將該日期轉換爲UNIX時間格式,而第二次給了我兩個日期之間的秒數。這些信息正在從文檔中提取出來,因此我認爲這將有助於瞭解您所得到的錯誤。 – IAmTimCorey 2011-05-12 15:46:27

+0

@john ryan - 嘗試'SELECT strftime('%s','2011-05 ....'),看看是否有效。 – JasonFruit 2011-05-12 19:16:44