sql >> Databasteknik >  >> RDS >> Sqlserver

Sortera efter datum i SQL

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

Den första termen anger den primära ordningen efter månaden resource_date (den aktuella månaden kommer att vara den första, den föregående, den sista). Den andra termen beställer tidsstämplarna inom en månad oavsett år för datumet. Om dina datum inte innehåller tidsdelar eller om tidsdelarna är absolut irrelevanta kan du ersätta det med DAY(resource_date) . Slutligen tar den sista termen hänsyn till året för annars identiska datum (kan också helt enkelt vara resource_date ).



  1. Kan inte skapa MySQL TRIGGER när jag använder IS NOT NULL

  2. Hur man ogiltigförklarar en SQL-sats i Oracle SQL-området så att en ny plan tas fram vid insamling av statistik

  3. Uppdatera konfigurationsfilen med dina nya databasinställningar

  4. Hur hittar man saknade index i MySQL?