En MariaDB, MONTH()
es una función de fecha y hora integrada que devuelve el mes de una expresión de fecha dada.
Acepta un argumento, que es la fecha de la que desea extraer el mes.
Devuelve el mes como un número en el rango 1
a 12
para enero a diciembre. Si la fecha tiene una parte de cero meses (por ejemplo, 0000-00-00
o 2025-00-00
), el resultado es 0
.
Sintaxis
La sintaxis es así:
MONTH(date)
Donde date
es la expresión de fecha de donde se obtiene el mes.
Ejemplo
He aquí un ejemplo:
SELECT MONTH('2030-08-01');
Resultado:
+---------------------+ | MONTH('2030-08-01') | +---------------------+ | 8 | +---------------------+
Valores de fecha y hora
También funciona con valores de fecha y hora:
SELECT MONTH('2030-08-01 10:30:45');
Resultado:
+------------------------------+ | MONTH('2030-08-01 10:30:45') | +------------------------------+ | 8 | +------------------------------+
Cero Meses
Cero meses dan como resultado 0
.
Ejemplo:
SELECT MONTH('2030-00-00');
Resultado:
+---------------------+ | MONTH('2030-00-00') | +---------------------+ | 0 | +---------------------+
Fechas numéricas
También es posible pasar fechas como un número, siempre que tenga sentido como fecha.
Ejemplo
SELECT MONTH(20301125);
Resultado:
+-----------------+ | MONTH(20301125) | +-----------------+ | 11 | +-----------------+
O incluso lo siguiente (que usa un año de dos dígitos):
SELECT MONTH(301125);
Resultado:
+---------------+ | MONTH(301125) | +---------------+ | 11 | +---------------+
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 MONTH(20301135);
Resultado:
+-----------------+ | MONTH(20301135) | +-----------------+ | 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
MONTH('2030/06/25'),
MONTH('2030,06,25'),
MONTH('2030:06:25'),
MONTH('2030;06!25');
Resultado (usando salida vertical):
MONTH('2030/06/25'): 6 MONTH('2030,06,25'): 6 MONTH('2030:06:25'): 6 MONTH('2030;06!25'): 6
Fecha actual
Podemos pasar NOW()
como argumento de fecha y hora para usar la fecha actual:
SELECT
NOW(),
MONTH(NOW());
Resultado:
+---------------------+--------------+ | NOW() | MONTH(NOW()) | +---------------------+--------------+ | 2021-05-16 15:00:06 | 5 | +---------------------+--------------+
Argumentos no válidos
Cuando se pasa un argumento inválido, MONTH()
devuelve null
:
SELECT MONTH('2030-65-78');
Resultado:
+---------------------+ | MONTH('2030-65-78') | +---------------------+ | NULL | +---------------------+
Argumento faltante
Llamando a MONTH()
con el número incorrecto de argumentos, o sin pasar ningún argumento, da como resultado un error:
SELECT MONTH();
Resultado:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')' at line 1
Y otro ejemplo:
SELECT MONTH('2030-12-10', '2031-12-10');
Resultado:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ' '2031-12-10')' at line 1