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'