我將 CHAR 字串以 mm/dd/yyyy 格式存盤在資料庫欄位中。如
2/26/2022
2/19/2022
2/12/2022
2/5/2022
12/31/2021
12/18/2021
11/27/2021
我需要在不更改宣告的情況下根據“日期”對它們進行排序。
MySQL 日期格式 DD/MM/YYYY 選擇查詢的帖子?建議使用 ORDER BY STR_TO_DATE(datestring, '%d/%m/%Y')
我的 MySQL 陳述句如下所示:
SELECT stringdate
FROM mytable
WHERE product = '#myproduct#'
ORDER BY STR_TO_DATE(stringdate, '%m/%d/%y') DESC
但是,結果沒有正確排序。而不是如上所示的所需順序,它顯示如下:
12/31/2021
12/18/2021
11/27/2021
2/26/2022
2/19/2022
2/12/2022
2/5/2022
似乎這一年被忽略了。如何在不實際更改資料庫欄位宣告的情況下對其進行排序?
提前致謝。
uj5u.com熱心網友回復:
2/5/2022是沒有前導零的月份和日期,以及四位數的年份。您指定的格式字串是 -
- %m - 月份,數字 (00..12)
- %d - 月份中的某天,數字 (00..31)
- %y - 年份,數字(兩位數)
SELECT stringdate
FROM mytable
WHERE product = '#myproduct#'
ORDER BY STR_TO_DATE(stringdate, '%c/%e/%Y') DESC
- %c - 月份,數字 (0..12)
- %e - 月份中的某天,數字 (0..31)
- %Y - 年份,數字,四位數
執行以下查詢顯示轉換日期的差異 -
SELECT
stringdate,
STR_TO_DATE(stringdate, '%m/%d/%y'),
STR_TO_DATE(stringdate, '%c/%e/%Y')
FROM mytable
WHERE product = '#myproduct#'
ORDER BY STR_TO_DATE(stringdate, '%c/%e/%Y') DESC
db<>小提琴
https://dev.mysql.com/doc/refman/8.0/en/date-and-time-functions.html#function_date-format
uj5u.com熱心網友回復:
%y是兩位數的年份代碼。所以你將它們全部排序為'20'
%Y是四位數的年份代碼。
請參閱此處的日期格式代碼參考:https ://dev.mysql.com/doc/refman/8.0/en/date-and-time-functions.html#function_date-format
我建議您使用DATE資料型別而不是CHAR.
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/433440.html
