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 | +----------+-----------+-----------------------+ | ส.ค. | สิง | สิงหาคม | +----------+-----------+-----------------------+