En MariaDB, MONTHNAME()
es una función de fecha y hora incorporada que devuelve el nombre del mes para una fecha determinada.
Acepta un argumento, que es la fecha de la que desea extraer el nombre del mes.
Sintaxis
La sintaxis es así:
MONTHNAME(date)
Donde date
es la fecha de donde se obtiene el nombre del mes.
Ejemplo
He aquí un ejemplo:
SELECT MONTHNAME('2041-11-14');
Resultado:
+-------------------------+ | MONTHNAME('2041-11-14') | +-------------------------+ | November | +-------------------------+
Idioma
El idioma utilizado para el nombre del mes está controlado por el valor de lc_time_names
variable del sistema.
Aquí hay un ejemplo que muestra cómo esto afecta el resultado:
SET lc_time_names = 'es_AR';
SELECT MONTHNAME('2041-11-14');
Resultado:
+-------------------------+ | MONTHNAME('2041-11-14') | +-------------------------+ | November | +-------------------------+
Y volviendo a en_US
, que es el predeterminado:
SET lc_time_names = 'en_US';
SELECT MONTHNAME('2041-11-14');
Resultado:
+-------------------------+ | MONTHNAME('2041-11-14') | +-------------------------+ | November | +-------------------------+
Aquí hay una lista de configuraciones regionales admitidas por MariaDB, y aquí se explica cómo devolver su propia lista de configuraciones regionales disponibles.
Y aquí hay una publicación que explica cómo verificar el valor de sus lc_time_names
variable del sistema.
Valores de fecha y hora
También funciona con valores de fecha y hora:
SELECT MONTHNAME('2041-01-15 10:30:45');
Resultado:
+----------------------------------+ | MONTHNAME('2041-01-15 10:30:45') | +----------------------------------+ | January | +----------------------------------+
Cero Meses
Tener un mes cero en la fecha devuelve null
:
SELECT MONTHNAME('2030-00-00');
Resultado:
+-------------------------+ | MONTHNAME('2030-00-00') | +-------------------------+ | NULL | +-------------------------+
Fechas numéricas
También es posible pasar fechas como un número, siempre que tenga sentido como fecha.
Ejemplo
SELECT MONTHNAME(20201208);
Resultado:
+---------------------+ | MONTHNAME(20201208) | +---------------------+ | December | +---------------------+
Los años de dos dígitos están bien:
SELECT MONTHNAME(201208);
Resultado:
+-------------------+ | MONTHNAME(201208) | +-------------------+ | December | +-------------------+
Pero debe tener sentido como fecha. Esto es lo que sucede si aumento la parte del día a un día no válido:
SELECT MONTHNAME(201299);
Resultado:
+-------------------+ | MONTHNAME(201299) | +-------------------+ | NULL | +-------------------+
Otros delimitadores
Puede utilizar otros delimitadores para la fecha. MariaDB es bastante indulgente cuando se trata de delimitadores en fechas. Aquí hay algunos ejemplos válidos:
SELECT
MONTHNAME('2027/08/19'),
MONTHNAME('2027,08,19'),
MONTHNAME('2027:08:19'),
MONTHNAME('2027;08!19');
Resultado (usando salida vertical):
MONTHNAME('2027/08/19'): August MONTHNAME('2027,08,19'): August MONTHNAME('2027:08:19'): August MONTHNAME('2027;08!19'): August
Fecha actual
Podemos pasar NOW()
como argumento de fecha para usar la fecha actual:
SELECT
NOW(),
MONTHNAME(NOW());
Resultado:
+---------------------+------------------+ | NOW() | MONTHNAME(NOW()) | +---------------------+------------------+ | 2021-05-14 10:11:16 | May | +---------------------+------------------+
Argumentos no válidos
Cuando se pasa un argumento inválido, MONTHNAME()
devuelve null
:
SELECT MONTHNAME('Wrong!');
Resultado:
+---------------------+ | MONTHNAME('Wrong!') | +---------------------+ | NULL | +---------------------+
Argumento faltante
Llamando a MONTHNAME()
con el número incorrecto de argumentos, o sin pasar ningún argumento, da como resultado un error:
SELECT MONTHNAME();
Resultado:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'MONTHNAME'
Y otro ejemplo:
SELECT MONTHNAME('2030-01-25', '2045-05-08');
Resultado:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'MONTHNAME'