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

So erhalten Sie den kurzen Monatsnamen von einem Datum in MariaDB

In MariaDB können Sie das DATE_FORMAT() verwenden Funktion, um verschiedene Datumsteile eines Datums zurückzugeben. Eines der Dinge, die Sie zurückgeben können, ist der kurze Monatsname. Zum Beispiel Nov oder Dec (statt Nov oder December ).

Der Formatbezeichner „Kurzer Monatsname“ (%b )

Der Schlüssel zur Rückgabe des kurzen Monatsnamens bei Verwendung von DATE_FORMAT() Funktion ist es, den zutreffenden Formatbezeichner zu verwenden.

In MariaDB lautet der Formatbezeichner für den kurzen Monatsnamen:%b

Beispiel

Hier ist ein Beispiel zur Veranschaulichung:

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

Ergebnis:

+---------------------------------+
| DATE_FORMAT('2023-12-25', '%b') |
+---------------------------------+
| Dec                             |
+---------------------------------+

Hier ist ein weiteres Beispiel, das sich durch die verschiedenen Monate des Jahres zieht:

SELECT 
    DATE_FORMAT('2023-01-25', '%b') AS "1",
    DATE_FORMAT('2023-02-25', '%b') AS "2",
    DATE_FORMAT('2023-03-25', '%b') AS "3",
    DATE_FORMAT('2023-04-25', '%b') AS "4",
    DATE_FORMAT('2023-05-25', '%b') AS "5",
    DATE_FORMAT('2023-06-25', '%b') AS "6",
    DATE_FORMAT('2023-07-25', '%b') AS "7",
    DATE_FORMAT('2023-08-25', '%b') AS "8",
    DATE_FORMAT('2023-09-25', '%b') AS "9",
    DATE_FORMAT('2023-10-25', '%b') AS "10",
    DATE_FORMAT('2023-11-25', '%b') AS "11",
    DATE_FORMAT('2023-12-25', '%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 speziell um die Rückgabe des kurzen Monatsnamens. Unter MariaDB-Formatzeichenfolgen finden Sie eine Liste von Formatbezeichnern, die mit DATE_FORMAT() verwendet werden können .

Andere Ansätze

Es gibt andere Möglichkeiten, den kurzen Monatsnamen von einem Datum zu erhalten, bei dem der erste Teil des Monats abgeschnitten wird.

Dies kann jedoch fehleranfälliger sein als die obige Methode (und es ist komplizierter). Bei Verwendung dieser Methode könnten Sie einige unerwartete Ergebnisse erhalten, insbesondere wenn Sie mit verschiedenen Sprachen arbeiten.

Hier sind einige Beispiele, um zu demonstrieren, was ich meine.

Anstatt den %b zu verwenden Formatbezeichner wie im vorherigen Beispiel, könnten wir den %M verwenden Formatbezeichner, um den vollständigen Monatsnamen zurückzugeben, und kürzen Sie dann das Ergebnis mit einer Funktion wie LEFT() zurück .

Beispiel:

SELECT 
    DATE_FORMAT('2023-10-25', '%M') AS Full,
    LEFT(DATE_FORMAT('2023-10-25', '%M'), 3) AS Short;

Ergebnis:

+---------+-------+
| Full    | Short |
+---------+-------+
| October | Oct   |
+---------+-------+

Wir könnten alternativ eine Funktion wie CAST() verwenden in einen Datentyp mit nur drei Zeichen zu konvertieren, wie z. B.:

SELECT 
    DATE_FORMAT('2023-10-25', '%M') AS Full,
    CAST(DATE_FORMAT('2023-10-25', '%M') AS CHAR(3)) AS Short;

Ergebnis:

+---------+-------+
| Full    | Short |
+---------+-------+
| October | Oct   |
+---------+-------+

Dies funktioniert gut, wenn Sie mit der englischen Sprache (und vielleicht einigen anderen Sprachen) arbeiten. Aber mal sehen, was passiert, wenn wir zu einer anderen Sprache wechseln – sagen wir, Thailändisch:

SELECT 
    DATE_FORMAT('2023-10-25', '%M', 'th_TH') AS Full,
    LEFT(DATE_FORMAT('2023-10-25', '%M', 'th_TH'), 3) AS Short;

Ergebnis:

+--------------------+-----------+
| Full               | Short     |
+--------------------+-----------+
| ตุลาคม              | ตุล        |
+--------------------+-----------+

Folgendes passiert jedoch, wenn wir %b verwenden Formatbezeichner, um den kurzen Monatsnamen zurückzugeben:

SELECT 
    DATE_FORMAT('2023-10-25', '%M', 'th_TH') AS Full,
    DATE_FORMAT('2023-10-25', '%b', 'th_TH') AS Short;

Ergebnis:

+--------------------+----------+
| Full               | Short    |
+--------------------+----------+
| ตุลาคม              | ต.ค.     |
+--------------------+----------+

Es gibt ein anderes Ergebnis zurück.

Daher würde ich empfehlen, den %b zu verwenden Formatbezeichner wann immer möglich.