In MySQL können Sie das DATE_FORMAT()
verwenden Funktion mit dem %b
Formatbezeichner, um den kurzen Monatsnamen zurückzugeben. Beispielsweise können Sie Jan
zurückgeben oder Feb
statt January
oder Feb
.
Beispiel
SELECT DATE_FORMAT('2035-01-18', '%b');
Ergebnis:
Jan
Hier ist ein weiteres Beispiel, das sich durch die verschiedenen Monate des Jahres zieht:
SELECT
DATE_FORMAT('2035-01-18', '%b') AS "1",
DATE_FORMAT('2035-02-18', '%b') AS "2",
DATE_FORMAT('2035-03-18', '%b') AS "3",
DATE_FORMAT('2035-04-18', '%b') AS "4",
DATE_FORMAT('2035-05-18', '%b') AS "5",
DATE_FORMAT('2035-06-18', '%b') AS "6",
DATE_FORMAT('2035-07-18', '%b') AS "7",
DATE_FORMAT('2035-08-18', '%b') AS "8",
DATE_FORMAT('2035-09-18', '%b') AS "9",
DATE_FORMAT('2035-10-18', '%b') AS "10",
DATE_FORMAT('2035-11-18', '%b') AS "11",
DATE_FORMAT('2035-12-18', '%b') AS "12";
Ergebnis (bei vertikaler Ausgabe):
1: Jan 2: Feb 3: Mar 4: Apr 5: May 6: Jun 7: Jul 8: Aug 9: Sep 10: Oct 11: Nov 12: Dec
Sie können auch andere Datums- und Zeiteinheiten zurückgeben, aber in diesem Artikel geht es nur um die Rückgabe des kurzen Monatsnamens.
Siehe MySQL-Datumsformatbezeichner für eine Liste von Formatbezeichnern, die mit DATE_FORMAT()
verwendet werden können .
Kürzen Sie den vollständigen Monatsnamen
Wenn Sie einen vollständigen Monatsnamen kürzen müssen, können Sie immer eine Funktion wie LEFT()
verwenden um nur die ersten drei Zeichen zurückzugeben (oder wie viele Sie benötigen).
Beispiel:
SELECT
DATE_FORMAT('2035-09-18', '%M') AS Full,
LEFT(DATE_FORMAT('2035-09-18', '%M'), 3) AS Short;
Ergebnis:
+-----------+-------+ | Full | Short | +-----------+-------+ | September | Sep | +-----------+-------+
Wir könnten alternativ eine Funktion wie CAST()
verwenden in einen Datentyp mit nur drei Zeichen zu konvertieren, wie z. B.:
SELECT
DATE_FORMAT('2035-09-18', '%M') AS Full,
CAST(DATE_FORMAT('2035-09-18', '%M') AS CHAR(3)) AS Short;
Ergebnis:
+-----------+-------+ | Full | Short | +-----------+-------+ | September | Sep | +-----------+-------+ 1 row in set, 1 warning (0.00 sec)
In diesem Fall erhalten wir eine Warnung, weil wir einen längeren Wert abschneiden:
show warnings;
Ergebnis:
+---------+------+------------------------------------------------+ | Level | Code | Message | +---------+------+------------------------------------------------+ | Warning | 1292 | Truncated incorrect CHAR(3) value: 'September' | +---------+------+------------------------------------------------+
Das Verkürzen des Monatsnamens auf diese Weise kann bei der Arbeit mit Sprachen wie Englisch in Ordnung sein, aber denken Sie daran, dass es möglicherweise nicht dasselbe Ergebnis zurückgibt wie bei Verwendung von %b
Formatbezeichner.
Um zu demonstrieren, was ich meine, hier ist, was passiert, wenn ich meine Sitzung auf die Verwendung der thailändischen Sprache umstelle:
SET lc_time_names = 'th_TH';
SELECT
DATE_FORMAT('2023-10-25', '%M') AS Full,
LEFT(DATE_FORMAT('2023-10-25', '%M'), 3) AS Truncated,
DATE_FORMAT('2023-10-25', '%b') AS Short;
Ergebnis:
+--------------------+-----------+----------+ | Full | Truncated | Short | +--------------------+-----------+----------+ | ตุลาคม | ตุล | ต.ค. | +--------------------+-----------+----------+
Das Abschneiden des vollständigen Monatsnamens liefert ein anderes Ergebnis als die Verwendung von %b
Formatbezeichner, um den kurzen Monatsnamen zurückzugeben.