Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Sortieren nach Datum in SQL

ORDER BY
  (MONTH(resource_date) - MONTH(GETDATE()) + 12) % 12,
  DATEADD(year, YEAR(GETDATE()) - YEAR(resource_date), resource_date),
  YEAR(resource_date)

Der erste Begriff legt die primäre Reihenfolge nach dem Monat resource_date fest (der aktuelle Monat wird der erste, der vorherige der letzte). Der zweite Term ordnet die Zeitstempel innerhalb eines Monats an, unabhängig vom Jahr des Datums. Wenn Ihre Daten keine Zeitteile enthalten oder die Zeitteile absolut irrelevant sind, können Sie es durch DAY(resource_date) ersetzen . Schließlich berücksichtigt der letzte Begriff das Jahr für ansonsten identische Daten (könnte auch einfach resource_date sein ).