Ecco tre modi per restituire il nome del mese da una data in MariaDB.
Il MONTHNAME()
Funzione
Il MONTHNAME()
la funzione è progettata specificamente per restituire il nome del mese da una data. Per fare ciò, passa la data alla funzione quando la chiami. Verrà restituito il nome completo del mese.
Esempio:
SELECT MONTHNAME('2021-08-19');
Risultato:
+-------------------------+ | MONTHNAME('2021-08-19') | +-------------------------+ | August | +-------------------------+
La lingua utilizzata per il nome del mese è controllata dal valore di lc_time_names
variabile di sistema. Vedi MONTHNAME()
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 mese passando %M
come stringa di formato.
Esempio:
SELECT DATE_FORMAT('2021-08-19', '%M');
Risultato:
+---------------------------------+ | DATE_FORMAT('2021-08-19', '%M') | +---------------------------------+ | August | +---------------------------------+
Come con MONTHNAME()
, la lingua utilizzata per il nome del mese è 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', '%M', 'ca_ES');
Risultato:
+------------------------------------------+ | DATE_FORMAT('2021-08-19', '%M', 'ca_ES') | +------------------------------------------+ | agost | +------------------------------------------+
Nome breve del mese
Passaggio di %b
al DATE_FORMAT()
la funzione restituisce il nome breve del mese.
Esempio:
SELECT DATE_FORMAT('2021-08-19', '%b');
Risultato:
+---------------------------------+ | DATE_FORMAT('2021-08-19', '%b') | +---------------------------------+ | Aug | +---------------------------------+
Questo potrebbe essere replicato con MONTHNAME()
funzione utilizzando LEFT()
per prendere i primi 3 caratteri dal nome del mese.
Esempio:
SELECT LEFT(MONTHNAME('2021-08-19'), 3);
Risultato:
+----------------------------------+ | LEFT(MONTHNAME('2021-08-19'), 3) | +----------------------------------+ | Aug | +----------------------------------+
Lo stesso concetto può essere ottenuto convertendo il risultato di MONTHNAME()
a un tipo di dati di tre caratteri con una funzione come CAST()
.
Tuttavia, mentre questo approccio funziona in en_US
, potrebbe non funzionare sempre in altre lingue. Ad esempio:
SET lc_time_names = 'th_TH';
SELECT
DATE_FORMAT('2021-08-19', '%b') AS "Short 1",
LEFT(MONTHNAME('2021-08-19'), 3) AS "Short 2",
MONTHNAME('2021-08-19') AS "Full";
Risultato:
+----------+-----------+-----------------------+ | Short 1 | Short 2 | Full | +----------+-----------+-----------------------+ | ส.ค. | สิง | สิงหาคม | +----------+-----------+-----------------------+