sql >> Base de Datos >  >> RDS >> MariaDB

Cómo funciona DAYOFMONTH() en MariaDB

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'