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'