Ich tippe auf EventDate
ist ein char oder varchar und kein Datum, sonst wäre Ihre order by-Klausel in Ordnung.
Sie können CONVERT verwenden, um die Werte in ein Datum umzuwandeln und danach zu sortieren
SELECT *
FROM
vw_view
ORDER BY
CONVERT(DateTime, EventDate,101) DESC
Das Problem dabei ist, wie Sparky in den Kommentaren darauf hinweist, dass die Abfrage nicht ausgeführt wird, wenn EventDate einen Wert hat, der nicht in ein Datum konvertiert werden kann.
Das bedeutet, dass Sie entweder die fehlerhaften Zeilen ausschließen oder die fehlerhaften Zeilen an das Ende der Ergebnisse stellen sollten
Um die fehlerhaften Zeilen auszuschließen, fügen Sie einfach WHERE IsDate(EventDate) = 1
hinzu
Um die schlechten Daten auf den Grund gehen zu lassen, müssen Sie CASE
verwenden
z. B.
ORDER BY
CASE
WHEN IsDate(EventDate) = 1 THEN CONVERT(DateTime, EventDate,101)
ELSE null
END DESC