[英]SQLite and STRFTIME
在我的SQLite數據庫中,我有一個帶有分鍾,秒和厘秒的時間字段:
00:01:100
我要選擇以毫秒為單位的MAX值的行,並創建strftime函數。 我正在嘗試:
SELECT MAX(strftime("%M:%S:%SSS", field)) FROM table;
但這是行不通的。
因為這不在允許的格式列表中,所以您必須首先對其進行編輯以使其受支持。
然后運行strftime
函數
SELECT MAX(strftime("%H:%M:%f", "00:" || substr(field,1,3) || replace(':','.',substr(field,4)))) FROM table;
這個 應該 不管用
編輯
因此,更新。 為什么不起作用:
當您已經有格式的時間並且想要將其轉換為其他格式時, strftime
很有用。
您的商品格式不受支持。 ( 此處為格式列表 )。 因此,您可能已將其保存為默認的TEXT格式。
因此,現在您需要編寫一個查詢,使用該文本將其轉換為正確的格式並進行比較。 基本上,您必須編寫自己的最大化函數,該函數會將這些文本轉換為MAX
函數可以處理的內容。
這是通過子字符串和強制轉換的組合來完成的。 我在下面的查詢中完成的操作將子字符串轉換為整數,將它們相乘以將其轉換為秒,然后將其添加到MAX
。
SELECT time,MAX(cast(substr(time,1,2) as integer)*60+cast(substr(time,4,2) as integer )+cast(substr(time,7,3) as integer)/100) FROM t;
這是它運行的一個例子
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.