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

DÍA de MariaDB () explicado

En MariaDB, DAY() es un sinónimo de DAYOFMONTH() . Devuelve el día del mes a partir de una fecha dada.

Acepta un argumento, que es la fecha en la que desea devolver 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í:

DAY(date)

Donde date es la fecha de donde extraer el día.

Ejemplo

He aquí un ejemplo:

SELECT DAY('2045-05-18');

Resultado:

+-------------------+
| DAY('2045-05-18') |
+-------------------+
|                18 |
+-------------------+

Valores de fecha y hora

También funciona con valores de fecha y hora:

SELECT DAY('2045-05-18 01:10:15');

Resultado:

+----------------------------+
| DAY('2045-05-18 01:10:15') |
+----------------------------+
|                         18 |
+----------------------------+

Cero Días

Aquí hay un ejemplo que usa un día cero en la fecha:

SELECT DAY('0000-00-00');

Resultado:

+-------------------+
| DAY('0000-00-00') |
+-------------------+
|                 0 |
+-------------------+

Fechas numéricas

También es posible pasar fechas como un número, siempre que tenga sentido como fecha.

Ejemplo

SELECT DAY(20220308);

Resultado:

+---------------+
| DAY(20220308) |
+---------------+
|             8 |
+---------------+

O incluso lo siguiente (que usa un año de dos dígitos):

SELECT DAY(220308);

Resultado:

+-------------+
| DAY(220308) |
+-------------+
|           8 |
+-------------+

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 DAY(220358);

Resultado:

+-------------+
| DAY(220358) |
+-------------+
|        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 
    DAY('2028/12/30'),
    DAY('2028,12,30'),
    DAY('2028:12:30'),
    DAY('2028;12!30');

Resultado (usando salida vertical):

DAY('2028/12/30'): 30
DAY('2028,12,30'): 30
DAY('2028:12:30'): 30
DAY('2028;12!30'): 30

Fecha actual

Podemos pasar NOW() como argumento de fecha para usar la fecha actual:

SELECT 
    NOW(),
    DAY(NOW());

Resultado:

+---------------------+------------+
| NOW()               | DAY(NOW()) |
+---------------------+------------+
| 2021-05-13 09:41:03 |         13 |
+---------------------+------------+

Argumentos no válidos

Cuando se pasa un argumento no válido, DAY() devuelve null :

SELECT DAY('Oops!');

Resultado:

+--------------+
| DAY('Oops!') |
+--------------+
|         NULL |
+--------------+

Argumento faltante

Llamando a DAY() con el número incorrecto de argumentos, o sin pasar ningún argumento, da como resultado un error:

SELECT DAY();

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 DAY('2030-01-25', '2045-05-08');

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 ' '2045-05-08')' at line 1