Di seguito sono riportati tre approcci che puoi utilizzare per ottenere il nome del giorno da una data in MariaDB.
Due di questi approcci restituiscono il nome completo del giorno e uno restituisce il nome breve del giorno.
Il DAYNAME() Funzione
Il DAYNAME() la funzione è progettata specificamente per restituire il nome del giorno da una data. Basta passare la data quando si chiama la funzione e restituirà il nome completo del giorno.
Esempio:
SELECT DAYNAME('2021-08-19'); Risultato:
+-----------------------+
| DAYNAME('2021-08-19') |
+-----------------------+
| Thursday |
+-----------------------+
La lingua utilizzata per il nome del giorno è controllata dal valore di lc_time_names variabile di sistema. Vedi DAYNAME() per un esempio di come ciò influisca sull'output.
Il DATE_FORMAT() Funzione
Il DATE_FORMAT() la funzione formatta una data data in un formato specificato. Specificare la data e il formato quando si chiama la funzione.
Puoi restituire il nome completo del giorno della settimana passando %W come stringa di formato.
Esempio:
SELECT DATE_FORMAT('2021-08-19', '%W'); Risultato:
+---------------------------------+
| DATE_FORMAT('2021-08-19', '%W') |
+---------------------------------+
| Thursday |
+---------------------------------+
Come con DAYNAME() , la lingua utilizzata per il nome del giorno è controllata dal valore di lc_time_names variabile di sistema. Tuttavia, il DATE_FORMAT() La funzione accetta un terzo argomento facoltativo che consente di specificare la locale.
Ecco un esempio di specifica di una lingua:
SELECT DATE_FORMAT('2021-08-19', '%W', 'ca_ES'); Risultato:
+------------------------------------------+
| DATE_FORMAT('2021-08-19', '%W', 'ca_ES') |
+------------------------------------------+
| dijous |
+------------------------------------------+ Nome breve del giorno
Passaggio di %a al DATE_FORMAT() La funzione restituisce il nome breve del giorno della settimana.
Esempio:
SELECT DATE_FORMAT('2021-08-19', '%a'); Risultato:
+---------------------------------+
| DATE_FORMAT('2021-08-19', '%a') |
+---------------------------------+
| Thu |
+---------------------------------+
Questo potrebbe essere replicato con DAYNAME() funzione utilizzando LEFT() per prendere i primi 3 caratteri dal nome del giorno della settimana.
Esempio:
SELECT LEFT(DAYNAME('2021-08-19'), 3); Risultato:
+--------------------------------+
| LEFT(DAYNAME('2021-08-19'), 3) |
+--------------------------------+
| Thu |
+--------------------------------+
Lo stesso effetto può essere ottenuto anche utilizzando una funzione come CAST() per convertire il risultato in un tipo di dati con tre caratteri.
Tuttavia, sebbene questo approccio funzioni in en_US , potrebbe non funzionare sempre in altre lingue. Ad esempio:
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"; Risultato:
+---------+-----------+--------------------------+ | Short 1 | Short 2 | Full | +---------+-----------+--------------------------+ | พฤ. | พฤห | พฤหัสบดี | +---------+-----------+--------------------------+