MariaDB
 sql >> Datenbank >  >> RDS >> MariaDB

3 Möglichkeiten, den Monatsnamen von einem Datum in MariaDB zu erhalten

Hier sind drei Möglichkeiten, den Monatsnamen von einem Datum in MariaDB zurückzugeben.

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('2021-08-19');

Ergebnis:

+-------------------------+
| MONTHNAME('2021-08-19') |
+-------------------------+
| August                  |
+-------------------------+

Die für den Monatsnamen verwendete Sprache wird durch den Wert von lc_time_names gesteuert Systemvariable. Siehe MONTHNAME() für ein Beispiel, wie sich dies auf die Ausgabe auswirkt.

Das DATE_FORMAT() Funktion

Das DATE_FORMAT() Funktion formatiert ein gegebenes Datum in ein bestimmtes Format. Das Datum und das Format geben Sie beim Aufruf der Funktion an.

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

Beispiel:

SELECT DATE_FORMAT('2021-08-19', '%M');

Ergebnis:

+---------------------------------+
| DATE_FORMAT('2021-08-19', '%M') |
+---------------------------------+
| August                          |
+---------------------------------+

Wie bei MONTHNAME() , die für den Monatsnamen verwendete Sprache wird durch den Wert von lc_time_names gesteuert Systemvariable. Das DATE_FORMAT() Die Funktion akzeptiert ein optionales drittes Argument, mit dem Sie das Gebietsschema angeben können.

Hier ist ein Beispiel für die Angabe eines Gebietsschemas:

SELECT DATE_FORMAT('2021-08-19', '%M', 'ca_ES');

Ergebnis:

+------------------------------------------+
| DATE_FORMAT('2021-08-19', '%M', 'ca_ES') |
+------------------------------------------+
| agost                                    |
+------------------------------------------+

Kurzer Monatsname

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

Beispiel:

SELECT DATE_FORMAT('2021-08-19', '%b');

Ergebnis:

+---------------------------------+
| DATE_FORMAT('2021-08-19', '%b') |
+---------------------------------+
| Aug                             |
+---------------------------------+

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

Beispiel:

SELECT LEFT(MONTHNAME('2021-08-19'), 3);

Ergebnis:

+----------------------------------+
| LEFT(MONTHNAME('2021-08-19'), 3) |
+----------------------------------+
| Aug                              |
+----------------------------------+

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 , es funktioniert möglicherweise nicht immer in anderen Sprachen. Zum Beispiel:

SET lc_time_names = 'th_TH';
SELECT 
    DATE_FORMAT('2021-08-19', '%b') AS "Short 1",
    LEFT(MONTHNAME('2021-08-19'), 3) AS "Short 2",
    MONTHNAME('2021-08-19') AS "Full";

Ergebnis:

+----------+-----------+-----------------------+
| Short 1  | Short 2   | Full                  |
+----------+-----------+-----------------------+
| ส.ค.     | สิง        | สิงหาคม                |
+----------+-----------+-----------------------+