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

3 modi per ottenere il nome del giorno da una data in MariaDB

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