En MariaDB, DAYOFMONTH()
es una función de fecha y hora integrada que devuelve el día del mes a partir de una fecha determinada.
Acepta un argumento, que es la fecha de la que desea extraer el día del mes.
El resultado está en el rango 1
al 31
. Sin embargo, si la fecha tiene una parte de día cero (por ejemplo, '0000-00-00'
o '2021-00-00'
), el resultado es 0
.
Sintaxis
La sintaxis es así:
DAYOFMONTH(date)
Donde date
es la fecha de donde extraer el día.
Ejemplo
He aquí un ejemplo:
SELECT DAYOFMONTH('2030-01-25');
Resultado:
+--------------------------+ | DAYOFMONTH('2030-01-25') | +--------------------------+ | 25 | +--------------------------+
Valores de fecha y hora
También funciona con valores de fecha y hora:
SELECT DAYOFMONTH('2030-01-25 10:30:45');
Resultado:
+-----------------------------------+ | DAYOFMONTH('2030-01-25 10:30:45') | +-----------------------------------+ | 25 | +-----------------------------------+
Cero Días
Aquí hay un ejemplo que usa un día cero en la fecha:
SELECT DAYOFMONTH('2030-00-00');
Resultado:
+--------------------------+ | DAYOFMONTH('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 DAYOFMONTH(20300125);
Resultado:
+----------------------+ | DAYOFMONTH(20300125) | +----------------------+ | 25 | +----------------------+
O incluso lo siguiente (que usa un año de dos dígitos):
SELECT DAYOFMONTH(300125);
Resultado:
+--------------------+ | DAYOFMONTH(300125) | +--------------------+ | 25 | +--------------------+
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 DAYOFMONTH(20300135);
Resultado:
+----------------------+ | DAYOFMONTH(20300135) | +----------------------+ | 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
DAYOFMONTH('2030/01/25'),
DAYOFMONTH('2030,01,25'),
DAYOFMONTH('2030:01:25'),
DAYOFMONTH('2030;01!25');
Resultado (usando salida vertical):
DAYOFMONTH('2030/01/25'): 25 DAYOFMONTH('2030,01,25'): 25 DAYOFMONTH('2030:01:25'): 25 DAYOFMONTH('2030;01!25'): 25
Fecha actual
Podemos pasar NOW()
como argumento de fecha para usar la fecha actual:
SELECT
NOW(),
DAYOFMONTH(NOW());
Resultado:
+---------------------+-------------------+ | NOW() | DAYOFMONTH(NOW()) | +---------------------+-------------------+ | 2021-05-13 09:02:41 | 13 | +---------------------+-------------------+
Argumentos no válidos
Cuando se pasa un argumento no válido, DAYOFMONTH()
devuelve null
:
SELECT DAYOFMONTH('Homer');
Resultado:
+---------------------+ | DAYOFMONTH('Homer') | +---------------------+ | NULL | +---------------------+
Argumento faltante
Llamando a DAYOFMONTH()
con el número incorrecto de argumentos, o sin pasar ningún argumento, da como resultado un error:
SELECT DAYOFMONTH();
Resultado:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'DAYOFMONTH'
Y otro ejemplo:
SELECT DAYOFMONTH('2030-01-25', '2045-05-08');
Resultado:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'DAYOFMONTH'