sql >> Base de Datos >  >> RDS >> Mysql

Ejemplos de DAYOFYEAR() – MySQL

Al ejecutar consultas en MySQL, puede usar el DAYOFYEAR() función para devolver el día del año a partir de una fecha.

Esta función acepta un argumento y devuelve un valor entre 1 y 366 , según el día del año que represente la parte del día del argumento.

Sintaxis

La sintaxis es así:

DAYOFYEAR(date)

Donde date es el valor de fecha del que desea que se devuelva el día del año.

Ejemplo

Aquí hay un ejemplo para demostrarlo.

SELECT 
    DAYOFYEAR('2019-01-01') AS 'Date 1',
    DAYOFYEAR('2019-12-31') AS 'Date 2';

Resultado:

+--------+--------+
| Date 1 | Date 2 |
+--------+--------+
|      1 |    365 |
+--------+--------+

En este ejemplo, para demostrar el efecto adecuado, ejecuto esta función dos veces en dos fechas diferentes:una al comienzo del año y la otra al final del año.

DÍA DEL AÑO() frente a DÍA DEL MES()

Aquí hay un ejemplo para demostrar la diferencia entre DAYOFYEAR() y DAYOFMONTH() funciones.

SET @date = '2019-10-03';
SELECT 
    @date,
    DAYOFMONTH(@date) AS 'Day of Month',
    DAYOFYEAR(@date) AS 'Day of Year';

Resultado:

+------------+--------------+-------------+
| @date      | Day of Month | Day of Year |
+------------+--------------+-------------+
| 2019-10-03 |            3 |         276 |
+------------+--------------+-------------+

El DAYOFMONTH() la función devuelve un valor entre 1 y 31 (o 0 para fechas con una parte de día cero) que representa el día del mes. Se restablece a 1 al comienzo de cada mes.

El DAYOFYEAR() Por otro lado, la función devuelve un valor entre 1 y 366 . Se restablece a 1 al comienzo de cada año.

Un ejemplo de base de datos

Aquí hay un ejemplo del uso de DAYOFYEAR() al consultar una base de datos:

USE sakila;
SELECT
  payment_date AS 'Date/Time',
  DAYOFYEAR(payment_date) AS 'Day of Year'
FROM payment
WHERE payment_id = 1;

Resultado:

+---------------------+-------------+
| Date/Time           | Day of Year |
+---------------------+-------------+
| 2005-05-25 11:30:37 |         145 |
+---------------------+-------------+

Fecha/hora actual

Aquí hay un ejemplo de cómo extraer la parte del día de la fecha y hora actuales (que se devuelve usando NOW() función).

SELECT 
    NOW(),
    DAYOFYEAR(NOW());

Resultado:

+---------------------+------------------+
| NOW()               | DAYOFYEAR(NOW()) |
+---------------------+------------------+
| 2018-06-26 08:23:04 |              177 |
+---------------------+------------------+

Otra forma de hacer esto es usar CURDATE() función, que devuelve solo la fecha (pero no la hora).

SELECT 
    CURDATE(),
    DAYOFYEAR(CURDATE()); 

Resultado:

+------------+----------------------+
| CURDATE()  | DAYOFYEAR(CURDATE()) |
+------------+----------------------+
| 2018-06-26 |                  177 |
+------------+----------------------+