Mysql
 sql >> Datenbank >  >> RDS >> Mysql

2 Funktionen, die den Monatsnamen aus einem Datum in MySQL zurückgeben

Die folgenden zwei Funktionen ermöglichen es uns, den Monatsnamen von einem Datum in MySQL zu erhalten.

Der MONTHNAME() Funktion

Der MONTHNAME() Die Funktion wurde speziell für die Rückgabe des Monatsnamens aus einem Datum entwickelt. Dazu übergeben Sie der Funktion beim Aufruf das Datum. Der vollständige Monatsname wird zurückgegeben.

Beispiel:

SELECT MONTHNAME('2030-10-25');

Ergebnis:

October

Die für den Monatsnamen verwendete Sprache wird durch den Wert von lc_time_names gesteuert Systemvariable. Siehe MONTHNAME() Beispiele für ein Beispiel, wie sich dies auf die Ausgabe auswirkt. Weitere Informationen finden Sie auch unter So stellen Sie das Gebietsschema für die aktuelle Verbindung in MySQL ein.

Das DATE_FORMAT() Funktion

Das DATE_FORMAT() Die Funktion gibt ein bestimmtes Datum in einem bestimmten Format zurück. Um diese Funktion zu nutzen, geben Sie beim Aufruf der Funktion das Datum und das gewünschte Format an.

Sie können den vollständigen Monatsnamen zurückgeben, indem Sie %M übergeben als Formatstring.

Beispiel:

SELECT DATE_FORMAT('2030-12-25', '%M');

Ergebnis:

December

Die für den Monatsnamen verwendete Sprache wird durch den Wert von lc_time_names gesteuert Systemvariable.

Kurzer Monatsname

Übergeben von %b zum DATE_FORMAT() Funktion gibt den kurzen Monatsnamen zurück.

Beispiel:

SELECT DATE_FORMAT('2030-12-25', '%b');

Ergebnis:

December

Dies könnte mit dem MONTHNAME() repliziert werden Funktion mit LEFT() um die ersten 3 Zeichen des Monatsnamens zu erfassen.

Beispiel:

SELECT LEFT(MONTHNAME('2030-12-25'), 3);

Ergebnis:

December

Das gleiche Konzept könnte durch Konvertieren des Ergebnisses von MONTHNAME() erreicht werden in einen dreistelligen Datentyp mit einer Funktion wie CAST() .

Dieser Ansatz funktioniert jedoch in en_US , funktioniert es in anderen Sprachen möglicherweise nicht immer wie erwartet. Zum Beispiel:

SET lc_time_names = 'th_TH';
SELECT 
    DATE_FORMAT('2030-12-25', '%b') AS "Short 1",
    LEFT(MONTHNAME('2030-12-25'), 3) AS "Short 2",
    MONTHNAME('2030-12-25') AS "Full";

Ergebnis:

+----------+-----------+-----------------------+
| Short 1  | Short 2   | Full                  |
+----------+-----------+-----------------------+
| ธ.ค.     | ธัน        | ธันวาคม                |
+----------+-----------+-----------------------+