我的專欄是日期型別,格式為 YYYY-MM-DD 或 2022-12-01
當使用 ORDER by 子句時,10 月首先出現,然后是 11 月,然后是 12 月,然后是 3 月等
我該如何解決這個問題?
我的選擇陳述句是:
Select RequestedDate FROM PTLrequests Order by RequestedDate;
產生:
2022-10-13 2022-10-14 2022-10-29 2022-11-10 2022-11-11 2022-12-18 2022-12-19 2022-3-11 2022-3-12 2022-4-10 2022-4-11 2022-5-10 2022-5-11 2022-6-15 2022-6-16 2022-7-10 2022-7-11 2022-8-10 2022-8-11 2022-9-1 2022-9-5
uj5u.com熱心網友回復:
SQLite 沒有 DATE 資料型別。日期存盤為字串。
確保您的日期格式正確,以便能夠正確排序。唯一合理的日期格式是yyyy-mm-dd(可能后跟hh:nn:ss)。
日期2022-4-10不遵循這種格式。重做您RequestedDate列中的日期,以便它們在需要的地方有前導零。
閱讀SQLite 支持的日期格式和函式。
此 SQL 可以修復您當前的資料。確保以正確的格式插入新資料。
update
PTLrequests
set
RequestedDate = substr(
replace(
replace(
replace(
replace(
replace(
replace(
replace(
replace(
replace(
RequestedDate||'-',
'-9-', '-09-'
),
'-8-', '-08-'
),
'-7-', '-07-'
),
'-6-', '-06-'
),
'-5-', '-05-'
),
'-4-', '-04-'
),
'-3-', '-03-'
),
'-2-', '-02-'
),
'-1-', '-01-'
),
0, 11
)
另一種方法是將日期存盤為數字,例如 Unix 時間戳或儒略日期,并且僅在需要時將它們轉換為可讀日期以用于顯示目的。這將使排序、相等比較和確定范圍非常快,但在其他領域可能不方便/麻煩。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/405601.html
標籤:
下一篇:實作歸并排序演算法
