Problem:
Sie möchten das Jahr und den Monat von einem bestimmten Datum in einer MySQL-Datenbank abrufen.
Beispiel:
Unsere Datenbank hat eine Tabelle namens dates
mit Daten in den Spalten id
und date
.
id | Datum |
---|---|
1 | 2008-04-21 |
2 | 14.12.1987 |
Extrahieren wir das year
und der month
ab dem Datum.
Lösung 1:
SELECT EXTRACT(YEAR FROM date) AS year, EXTRACT(MONTH FROM date) AS month FROM dates;
Das Ergebnis ist:
Jahr | Monat |
---|---|
2008 | 4 |
1987 | 12 |
Diskussion:
Um die Jahres- und Monatsspalten zu erhalten, verwenden Sie EXTRACT(part FROM date)
Funktion. In dieser Lösung wird das Part-Argument durch YEAR
ersetzt und MONTH
um das year
zu erhalten und der month
getrennt, jeweils in einer eigenen Spalte.
Sie können mehr über EXTRACT()
erfahren in der offiziellen MySQL-Dokumentation.
Lösung 2:
SELECT EXTRACT(YEAR_MONTH FROM date) AS year_and_month FROM dates;
Das Ergebnis ist:
Jahr_und_Monat |
---|
200804 |
198712 |
Diskussion:
Diese Lösung funktioniert genauso wie die vorherige, aber YEAR_MONTH
wird verwendet, um das Jahr und den Monat zusammen in einer Spalte zu erhalten, anstatt sie separat zu erhalten. Beachten Sie, dass die Werte für das Jahr und den Monat nicht voneinander getrennt sind.
Lösung 3:
SELECT YEAR(date) AS year, MONTH(date) AS month FROM dates;
Das Ergebnis ist:
Jahr | Monat |
---|---|
2008 | 4 |
1987 | 12 |
Diskussion:
Diesmal das YEAR()
und der MONTH()
Funktionen werden verwendet, um zwei Spalten zu erstellen. YEAR()
gibt das Jahr und MONTH()
zurück gibt den Monat als Zahl zurück.
Lösung 4:
SELECT YEAR(date) AS year, MONTHNAME(date) AS month FROM dates;
Das Ergebnis ist:
Jahr | Monat |
---|---|
2008 | April |
1987 | Dezember |
Diskussion:
Um den Namen des Monats zu erhalten, verwenden Sie MONTHNAME()
Funktion. Das Ergebnis zeigt den Monatsnamen anstelle der Monatsnummer an.
Lösung 5:
SELECT DATE_FORMAT(date, '%Y-%m') AS year_and_month FROM dates;
Das Ergebnis ist:
Jahr_und_Monat |
---|
2008-04 |
1987-12 |
Diskussion:
Verwenden Sie das DATE_FORMAT()
Funktion zum Anzeigen von date
Werte in einem bestimmten Format. Es nimmt das date
als erstes Argument und eine Zeichenfolge, die das gewünschte Datumsformat beschreibt, als zweites Argument. In unserem Fall ist die Zeichenfolge '%Y-%m
', %Y
gibt das Jahr zurück, ‘ -
’ als Trennzeichen verwendet wird und %m
gibt den Monat numerisch zurück (kann durch %M
ersetzt werden um den Monatsnamen zu erhalten).
Sie können mehr über DATE_FORMAT()
erfahren in der offiziellen MySQL-Dokumentation.