Bạn muốn STR_TO_DATE()
để chuyển đổi cột varchar hiện có của bạn thành một giá trị ngày tháng.
Tôi chắc chắn khuyên bạn nên tạo một cột mới và sử dụng STR_TO_DATE()
để sao chép giá trị từ cột hiện tại của bạn vào cột mới, thay vì sử dụng STR_TO_DATE()
trực tiếp trong ORDER BY
trong số SELECT
của bạn .
UPDATE archive SET newdate = STR_TO_DATE(crapdate,'%b-%e-%Y');
Nếu bạn không thể thay đổi cấu trúc bảng, bạn có thể sắp xếp trên cột hiện có như sau:
SELECT * FROM archive ORDER BY STR_TO_DATE(crapdate,'%b-%e-%Y') DESC;