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)
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))
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)
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!