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

Come funziona MONTHNAME() in MariaDB

In MariaDB, MONTHNAME() è una funzione di data e ora incorporata che restituisce il nome del mese per una determinata data.

Accetta un argomento, che è la data da cui vuoi estrarre il nome del mese.

Sintassi

La sintassi è questa:

MONTHNAME(date)

Dove date è la data da cui ottenere il nome del mese.

Esempio

Ecco un esempio:

SELECT MONTHNAME('2041-11-14');

Risultato:

+-------------------------+
| MONTHNAME('2041-11-14') |
+-------------------------+
| November                |
+-------------------------+

Lingua

La lingua utilizzata per il nome del mese è controllata dal valore di lc_time_names variabile di sistema.

Ecco un esempio che mostra come ciò influisca sul risultato:

SET lc_time_names = 'es_AR';
SELECT MONTHNAME('2041-11-14');

Risultato:

+-------------------------+
| MONTHNAME('2041-11-14') |
+-------------------------+
| noviembre               |
+-------------------------+

E torniamo a en_US , che è l'impostazione predefinita:

SET lc_time_names = 'en_US';
SELECT MONTHNAME('2041-11-14');

Risultato:

+-------------------------+
| MONTHNAME('2041-11-14') |
+-------------------------+
| November                |
+-------------------------+

Ecco un elenco di locali supportati da MariaDB, ed ecco come restituire il tuo elenco di locali disponibili.

Ed ecco un post che spiega come controllare il valore dei tuoi lc_time_names variabile di sistema.

Valori di data e ora

Funziona anche con i valori datetime:

SELECT MONTHNAME('2041-01-15 10:30:45');

Risultato:

+----------------------------------+
| MONTHNAME('2041-01-15 10:30:45') |
+----------------------------------+
| January                          |
+----------------------------------+

Zero mesi

Avere un mese zero nella data restituisce null :

SELECT MONTHNAME('2030-00-00');

Risultato:

+-------------------------+
| MONTHNAME('2030-00-00') |
+-------------------------+
| NULL                    |
+-------------------------+

Date numeriche

È anche possibile trasmettere le date come numero, purché abbia senso come data.

Esempio

SELECT MONTHNAME(20201208);

Risultato:

+---------------------+
| MONTHNAME(20201208) |
+---------------------+
| December            |
+---------------------+

Gli anni a due cifre vanno bene:

SELECT MONTHNAME(201208);

Risultato:

+-------------------+
| MONTHNAME(201208) |
+-------------------+
| December          |
+-------------------+

Ma deve avere un senso come appuntamento. Ecco cosa succede se aumento la parte del giorno a un giorno non valido:

SELECT MONTHNAME(201299);

Risultato:

+-------------------+
| MONTHNAME(201299) |
+-------------------+
| NULL              |
+-------------------+

Altri delimitatori

È possibile utilizzare altri delimitatori per la data. MariaDB è abbastanza clemente quando si tratta di delimitatori sulle date. Ecco alcuni validi esempi:

SELECT 
    MONTHNAME('2027/08/19'),
    MONTHNAME('2027,08,19'),
    MONTHNAME('2027:08:19'),
    MONTHNAME('2027;08!19');

Risultato (usando l'output verticale):

MONTHNAME('2027/08/19'): August
MONTHNAME('2027,08,19'): August
MONTHNAME('2027:08:19'): August
MONTHNAME('2027;08!19'): August

Data attuale

Possiamo passare NOW() come argomento data per utilizzare la data corrente:

SELECT 
    NOW(),
    MONTHNAME(NOW());

Risultato:

+---------------------+------------------+
| NOW()               | MONTHNAME(NOW()) |
+---------------------+------------------+
| 2021-05-14 10:11:16 | May              |
+---------------------+------------------+

Argomenti non validi

Quando viene passato un argomento non valido, MONTHNAME() restituisce null :

SELECT MONTHNAME('Wrong!');

Risultato:

+---------------------+
| MONTHNAME('Wrong!') |
+---------------------+
| NULL                |
+---------------------+

Argomento mancante

Chiamando MONTHNAME() con il numero errato di argomenti, o senza passare alcun argomento, genera un errore:

SELECT MONTHNAME();

Risultato:

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'MONTHNAME'

E un altro esempio:

SELECT MONTHNAME('2030-01-25', '2045-05-08');

Risultato:

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'MONTHNAME'