2016-03-07 107 views
0

小數秒比較所以,我有以下的SQLite查詢:SQLite和在日期時間

SELECT datetime('2013-10-07 08:23:19.111') = datetime('2013-10-07 08:23:19.222') 

出乎我的意料,我得到的是... 1(真)的結果。無論我在點後面加什麼值,當小數值不同時總是如此。

According to docs

在格式4,圖7和10,分數秒值SS.SSS可以具有小數點後面的一個或多個數字。實例中只顯示了三位數字,因爲只有前三位數字對結果有意義,但輸入字符串可以少於或多於三位數字,並且日期/時間函數仍可正常運行。

有沒有某種錯誤,或者有什麼我不明白的地方?

回答

0

您鏈接到的網頁顯示:

日期時間()函數返回 「YYYY-MM-DD HH:MM:SS」。

如果您知道您的值已經完全使用正確的格式,則直接比較字符串即可。否則,用%f用strftime()替換datetime()以將值轉換爲所需的格式。

+0

的確,這是正確的。值得一提的是,在日期時間字符串上操作時只有3位數字是重要的。所以查詢: 'SELECT strftime('%Y-%m-%d%H:%M:%f','2013-10-07 08:23:19.111')= strftime('%Y-%m - %d%H:%M:%f','2013-10-07 08:23:19.111001')' 將返回... 1(true) – FunCod