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

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

Unten sind drei Ansätze, die Sie verwenden können, um den Tagesnamen von einem Datum in MariaDB zu erhalten.

Zwei dieser Ansätze geben den vollständigen Tagesnamen zurück, und einer gibt den kurzen Tagesnamen zurück.

Der DAYNAME() Funktion

Der DAYNAME() Die Funktion wurde speziell für die Rückgabe des Tagesnamens aus einem Datum entwickelt. Übergeben Sie einfach das Datum, wenn Sie die Funktion aufrufen, und sie gibt den vollständigen Tagesnamen zurück.

Beispiel:

SELECT DAYNAME('2021-08-19');

Ergebnis:

+-----------------------+
| DAYNAME('2021-08-19') |
+-----------------------+
| Thursday              |
+-----------------------+

Die für den Tagesnamen verwendete Sprache wird durch den Wert von lc_time_names gesteuert Systemvariable. Siehe DAYNAME() 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 Wochentagnamen zurückgeben, indem Sie %W übergeben als Formatstring.

Beispiel:

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

Ergebnis:

+---------------------------------+
| DATE_FORMAT('2021-08-19', '%W') |
+---------------------------------+
| Thursday                        |
+---------------------------------+

Wie bei DAYNAME() , die für den Tagesnamen 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', '%W', 'ca_ES');

Ergebnis:

+------------------------------------------+
| DATE_FORMAT('2021-08-19', '%W', 'ca_ES') |
+------------------------------------------+
| dijous                                   |
+------------------------------------------+

Kurzer Tagesname

Übergeben von %a zum DATE_FORMAT() Die Funktion gibt den kurzen Wochentagsnamen zurück.

Beispiel:

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

Ergebnis:

+---------------------------------+
| DATE_FORMAT('2021-08-19', '%a') |
+---------------------------------+
| Thu                             |
+---------------------------------+

Dies könnte mit dem DAYNAME() repliziert werden Funktion mit LEFT() um die ersten 3 Zeichen des Wochentagsnamens abzurufen.

Beispiel:

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

Ergebnis:

+--------------------------------+
| LEFT(DAYNAME('2021-08-19'), 3) |
+--------------------------------+
| Thu                            |
+--------------------------------+

Der gleiche Effekt könnte auch durch die Verwendung einer Funktion wie CAST() erzielt werden um das Ergebnis in einen Datentyp mit drei Zeichen umzuwandeln.

Allerdings funktioniert dieser Ansatz 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', '%a') AS "Short 1",
    LEFT(DAYNAME('2021-08-19'), 3) AS "Short 2",
    DAYNAME('2021-08-19') AS "Full";

Ergebnis:

+---------+-----------+--------------------------+
| Short 1 | Short 2   | Full                     |
+---------+-----------+--------------------------+
| พฤ.     | พฤห       | พฤหัสบดี                   |
+---------+-----------+--------------------------+