En MariaDB, DAYOFYEAR() es una función de fecha y hora integrada que devuelve el día del año a partir de una fecha determinada.
Acepta un argumento, que es la fecha de la que desea extraer el día del año.
Devuelve el día como un número en el rango 1 a 366 .
Sintaxis
La sintaxis es así:
DAYOFYEAR(date)
Donde date es la fecha a partir de la cual se obtiene el día del año.
Ejemplo
He aquí un ejemplo:
SELECT DAYOFYEAR('2030-12-25'); Resultado:
+-------------------------+
| DAYOFYEAR('2030-12-25') |
+-------------------------+
| 359 |
+-------------------------+ Valores de fecha y hora
También funciona con valores de fecha y hora:
SELECT DAYOFYEAR('2030-02-01 10:30:45'); Resultado:
+----------------------------------+
| DAYOFYEAR('2030-02-01 10:30:45') |
+----------------------------------+
| 32 |
+----------------------------------+ Cero Días
Los días cero dan como resultado null .
Ejemplo:
SELECT DAYOFYEAR('2030-00-00'); Resultado:
+-------------------------+
| DAYOFYEAR('2030-00-00') |
+-------------------------+
| NULL |
+-------------------------+ Fechas numéricas
También es posible pasar fechas como un número, siempre que tenga sentido como fecha.
Ejemplo
SELECT DAYOFYEAR(20301125); Resultado:
+---------------------+ | DAYOFYEAR(20301125) | +---------------------+ | 329 | +---------------------+
O incluso lo siguiente (que usa un año de dos dígitos):
SELECT DAYOFYEAR(301125); Resultado:
+-------------------+ | DAYOFYEAR(301125) | +-------------------+ | 329 | +-------------------+
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 DAYOFYEAR(20300135); Resultado:
+---------------------+ | DAYOFYEAR(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
DAYOFYEAR('2030/06/25'),
DAYOFYEAR('2030,06,25'),
DAYOFYEAR('2030:06:25'),
DAYOFYEAR('2030;06!25'); Resultado (usando salida vertical):
DAYOFYEAR('2030/06/25'): 176
DAYOFYEAR('2030,06,25'): 176
DAYOFYEAR('2030:06:25'): 176
DAYOFYEAR('2030;06!25'): 176 Fecha actual
Podemos pasar NOW() como argumento de fecha para usar la fecha actual:
SELECT
NOW(),
DAYOFYEAR(NOW()); Resultado:
+---------------------+------------------+ | NOW() | DAYOFYEAR(NOW()) | +---------------------+------------------+ | 2021-05-16 09:05:57 | 136 | +---------------------+------------------+
Argumentos no válidos
Cuando se pasa un argumento no válido, DAYOFYEAR() devuelve null :
SELECT DAYOFYEAR('Friday'); Resultado:
+---------------------+
| DAYOFYEAR('Friday') |
+---------------------+
| NULL |
+---------------------+ Argumento faltante
Llamando a DAYOFYEAR() con el número incorrecto de argumentos, o sin pasar ningún argumento, da como resultado un error:
SELECT DAYOFYEAR(); Resultado:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'DAYOFYEAR'
Y otro ejemplo:
SELECT DAYOFYEAR('2030-01-25', '2045-05-08'); Resultado:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'DAYOFYEAR'