Mysql
 sql >> Database >  >> RDS >> Mysql

DAYOFYEAR() Esempi – MySQL

Quando si eseguono query in MySQL, è possibile utilizzare DAYOFYEAR() funzione per restituire il giorno dell'anno da una data.

Questa funzione accetta un argomento e restituisce un valore compreso tra 1 e 366 , a seconda del giorno dell'anno rappresentato dalla parte del giorno dell'argomento.

Sintassi

La sintassi è questa:

DAYOFYEAR(date)

Dove date è il valore della data da cui vuoi restituire il giorno dell'anno.

Esempio

Ecco un esempio da dimostrare.

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

Risultato:

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

In questo esempio, per dimostrare l'effetto corretto, eseguo questa funzione due volte in due date diverse:una all'inizio dell'anno e l'altra alla fine dell'anno.

DAYOFYEAR() vs DAYOFMONTH()

Ecco un esempio per dimostrare la differenza tra DAYOFYEAR() e DAYOFMONTH() funzioni.

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

Risultato:

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

Il DAYOFMONTH() la funzione restituisce un valore compreso tra 1 e 31 (o 0 per date con una parte zero day) che rappresenta il giorno del mese. Torna a 1 all'inizio di ogni mese.

Il DAYOFYEAR() funzione d'altra parte, restituisce un valore compreso tra 1 e 366 . Torna a 1 all'inizio di ogni anno.

Un esempio di database

Ecco un esempio di utilizzo di DAYOFYEAR() quando si interroga un database:

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

Risultato:

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

Data/ora corrente

Ecco un esempio di estrazione della parte del giorno dalla data e dall'ora correnti (che viene restituita utilizzando NOW() funzione).

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

Risultato:

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

Un altro modo per farlo è usare CURDATE() funzione, che restituisce solo la data (ma non l'ora).

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

Risultato:

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