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