Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Exemplos de DAYOFYEAR() – MySQL


Ao executar consultas no MySQL, você pode usar o DAYOFYEAR() função para retornar o dia do ano a partir de uma data.

Esta função aceita um argumento e retorna um valor entre 1 e 366 , dependendo de qual dia do ano a parte do dia do argumento representa.


Sintaxe


A sintaxe fica assim:
DAYOFYEAR(date)

Onde date é o valor de data do qual você deseja que o dia do ano seja retornado.

Exemplo


Aqui está um exemplo para demonstrar.
SELECT 
    DAYOFYEAR('2019-01-01') AS 'Date 1',
    DAYOFYEAR('2019-12-31') AS 'Date 2';

Resultado:
+--------+--------+
| Date 1 | Date 2 |
+--------+--------+
|      1 |    365 |
+--------+--------+

Neste exemplo, para demonstrar o efeito adequado, executo essa função duas vezes em duas datas diferentes – uma no início do ano e outra no final do ano.

DAYOFYEAR() vs DAYOFMONTH()


Aqui está um exemplo para demonstrar a diferença entre o DAYOFYEAR() e DAYOFMONTH() funções.
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 |
+------------+--------------+-------------+

O DAYOFMONTH() função retorna um valor entre 1 e 31 (ou 0 para datas com parte do dia zero) que representa o dia do mês. Ele é redefinido para 1 no início de cada mês.

O DAYOFYEAR() por outro lado, retorna um valor entre 1 e 366 . Ele é redefinido para 1 no início de cada ano.

Um exemplo de banco de dados


Aqui está um exemplo de uso de DAYOFYEAR() ao consultar um banco de dados:
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 |
+---------------------+-------------+

Data/hora atual


Aqui está um exemplo de extração da parte do dia da data e hora atuais (que é retornada usando o NOW() função).
SELECT 
    NOW(),
    DAYOFYEAR(NOW());

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

Outra maneira de fazer isso é usar o CURDATE() função, que retorna apenas a data (mas não a hora).
SELECT 
    CURDATE(),
    DAYOFYEAR(CURDATE()); 

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