簡體   English   中英

SQLite和STRFTIME

[英]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;

這是它運行的一個例子

http://sqlfiddle.com/#!7/1c665/1

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM