MariaDB
 sql >> Database >  >> RDS >> MariaDB

Come ottenere il nome del giorno breve da una data in MariaDB

In MariaDB, puoi usare DATE_FORMAT() funzione per restituire varie parti di data da una data. Una delle cose che puoi restituire è il nome del giorno breve. Ad esempio Tue o Wed (anziché Tuesday o Wednesday ).

L'identificatore di formato "Nome del giorno breve" (%a )

La chiave per restituire il nome breve del giorno quando si utilizza DATE_FORMAT() la funzione consiste nell'utilizzare l'identificatore di formato applicabile.

In MariaDB, l'identificatore di formato per il nome del giorno breve è:%a

Esempio

Ecco un esempio da dimostrare:

SELECT DATE_FORMAT('2023-07-25', '%a');

Risultato:

+---------------------------------+
| DATE_FORMAT('2023-07-25', '%a') |
+---------------------------------+
| Tue                             |
+---------------------------------+

Ecco un altro esempio che ripercorre i vari giorni della settimana:

SELECT 
    DATE_FORMAT('2023-07-24', '%a') AS "1",
    DATE_FORMAT('2023-07-25', '%a') AS "2",
    DATE_FORMAT('2023-07-26', '%a') AS "3",
    DATE_FORMAT('2023-07-27', '%a') AS "4",
    DATE_FORMAT('2023-07-28', '%a') AS "5",
    DATE_FORMAT('2023-07-29', '%a') AS "6",
    DATE_FORMAT('2023-07-30', '%a') AS "7";

Risultato:

+------+------+------+------+------+------+------+
| 1    | 2    | 3    | 4    | 5    | 6    | 7    |
+------+------+------+------+------+------+------+
| Mon  | Tue  | Wed  | Thu  | Fri  | Sat  | Sun  |
+------+------+------+------+------+------+------+

Puoi restituire anche altre unità di data e ora, ma questo articolo riguarda specificamente la restituzione del nome del giorno breve. Consulta le stringhe di formato MariaDB per un elenco di identificatori di formato che possono essere utilizzati con DATE_FORMAT() .

Altri approcci

Esistono altri modi per ottenere il nome breve del giorno da una data che comporta l'interruzione della prima parte della giornata.

Tuttavia, questo può essere più soggetto a errori rispetto al metodo sopra (inoltre è più contorto). Potresti ottenere dei risultati imprevisti quando usi questo metodo, specialmente quando lavori con lingue diverse.

Ecco alcuni esempi per dimostrare cosa intendo.

Invece di usare il %a identificatore di formato come abbiamo fatto nell'esempio precedente, potremmo usare il %W specificatore di formato per restituire il nome completo del giorno, quindi restituire abbreviare quel risultato con una funzione come LEFT() .

Esempio:

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

Risultato:

+---------+-------+
| Full    | Short |
+---------+-------+
| Tuesday | Tue   |
+---------+-------+

In alternativa potremmo usare una funzione come CAST() per convertire in un tipo di dati con solo tre caratteri, come questo:

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

Risultato:

+---------+-------+
| Full    | Short |
+---------+-------+
| Tuesday | Tue   |
+---------+-------+

Funziona bene quando si lavora con la lingua inglese (e forse alcune altre lingue). Ma vediamo cosa succede quando passiamo a un'altra lingua, ad esempio giapponese:

SELECT 
    DATE_FORMAT('2023-07-25', '%W', 'ja_JP') AS Full,
    LEFT(DATE_FORMAT('2023-07-25', '%W', 'ja_JP'), 3) AS Short;

Risultato:

+-----------+-----------+
| Full      | Short     |
+-----------+-----------+
| 火曜日     | 火曜日     |
+-----------+-----------+

In questo caso, non c'è differenza.

Al contrario, ecco cosa succede quando utilizziamo il %a identificatore di formato per restituire il nome del giorno breve:

SELECT 
    DATE_FORMAT('2023-07-25', '%W', 'ja_JP') AS Full,
    DATE_FORMAT('2023-07-25', '%a', 'ja_JP') AS Short;

Risultato:

+-----------+-------+
| Full      | Short |
+-----------+-------+
| 火曜日     | 火    |
+-----------+-------+

Quindi ti consiglio di usare il %a identificatore di formato quando possibile.