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

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

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