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 | +---------+-----------+--------------------------+ | พฤ. | พฤห | พฤหัสบดี | +---------+-----------+--------------------------+