Heim > Datenbank > MySQL-Tutorial > Wie kann ich SQL-Daten nach Monat und Jahr in einem benutzerdefinierten „Monat-Jahr'-Format gruppieren?

Wie kann ich SQL-Daten nach Monat und Jahr in einem benutzerdefinierten „Monat-Jahr'-Format gruppieren?

Susan Sarandon
Freigeben: 2024-12-29 00:30:10
Original
321 Leute haben es durchsucht

How Can I Group SQL Data by Month and Year in a Custom

SQL-Gruppierung nach Monat und Jahr in einem benutzerdefinierten Format

Bei der Arbeit mit Zeitstempeln in SQL kann es nützlich sein, Daten nach bestimmten Kriterien zu gruppieren Intervalle wie Monate oder Jahre. Das Standardformat für den Datentyp DATE oder TIMESTAMP stimmt jedoch möglicherweise nicht immer mit der gewünschten Darstellung überein. In diesem Zusammenhang besteht eine häufige Herausforderung darin, das Datum in einem benutzerdefinierten Format anzuzeigen, beispielsweise „Monat-Jahr“.

Betrachten Sie die folgende SQL-Abfrage:

SELECT MONTH(date) + '.' + YEAR(date) AS Mjesec,
       SUM(marketingExpense) AS SumaMarketing,
       SUM(revenue) AS SumaZarada 
FROM [Order]
WHERE (idCustomer = 1) AND (date BETWEEN '2001-11-3' AND '2011-11-3')
GROUP BY MONTH(date), YEAR(date)
Nach dem Login kopieren

Diese Abfrage gruppiert die Daten nach Monat und Jahr und zeigt die aggregierten Beträge für Marketingausgaben und -erlöse an. In der ersten Spalte „Mjesec“ wird derzeit jedoch nur der Monat angezeigt, z. B. „9“. Um die Ausgabe so zu ändern, dass sie „Monat-Jahr“ anzeigt, ist eine Kombination aus Umwandlung und Zeichenfolgenverkettung erforderlich.

Ein Ansatz besteht darin, die Monats- und Jahreswerte in Zeichenfolgen umzuwandeln und sie dann manuell zu verketten:

SELECT CAST(MONTH(date) AS VARCHAR(2)) + '-' + CAST(YEAR(date) AS VARCHAR(4)) AS Mjesec,
       SUM(marketingExpense) AS SumaMarketing,
       SUM(revenue) AS SumaZarada 
FROM [Order]
WHERE (idCustomer = 1) AND (date BETWEEN '2001-11-3' AND '2011-11-3')
GROUP BY CAST(MONTH(date) AS VARCHAR(2)) + '-' + CAST(YEAR(date) AS VARCHAR(4))
Nach dem Login kopieren

Dadurch wird das gewünschte „Monat-Jahr“-Format ausgegeben, z. B. „9-2011“. Alternativ kann, wie von 40-Love vorgeschlagen, das Casting mit führenden Nullen durchgeführt werden, was zu der folgenden GROUP BY-Klausel führt:

GROUP BY 
  CAST(YEAR(date) AS VARCHAR(4)) + '-' + right('00' + CAST(MONTH(date) AS VARCHAR(2)), 2) 
Nach dem Login kopieren

Diese Variante fügt führende Nullen hinzu, um sicherzustellen, dass der Monat immer als Zwei angezeigt wird -stellige Zahl.

Das obige ist der detaillierte Inhalt vonWie kann ich SQL-Daten nach Monat und Jahr in einem benutzerdefinierten „Monat-Jahr'-Format gruppieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage