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

Cómo funciona DAYOFYEAR() en MariaDB

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'