Tôi đoán EventDate
là một char hoặc varchar và không phải là một ngày tháng nếu không, việc đặt hàng theo điều khoản của bạn sẽ ổn.
Bạn có thể sử dụng CONVERT để thay đổi các giá trị thành ngày tháng và sắp xếp theo ngày đó
SELECT *
FROM
vw_view
ORDER BY
CONVERT(DateTime, EventDate,101) DESC
Vấn đề với điều đó là, như Sparky chỉ ra trong các nhận xét, nếu EventDate có giá trị không thể chuyển đổi thành ngày thì truy vấn sẽ không thực thi.
Điều này có nghĩa là bạn nên loại trừ các hàng xấu hoặc để các hàng xấu ở cuối kết quả
Để loại trừ các hàng xấu, chỉ cần thêm WHERE IsDate(EventDate) = 1
Để bỏ qua những ngày tồi tệ, bạn cần sử dụng CASE
ví dụ:
ORDER BY
CASE
WHEN IsDate(EventDate) = 1 THEN CONVERT(DateTime, EventDate,101)
ELSE null
END DESC