Mysql
 sql >> Base de données >  >> RDS >> Mysql

DAYOFYEAR() Exemples – MySQL

Lors de l'exécution de requêtes dans MySQL, vous pouvez utiliser le DAYOFYEAR() fonction pour retourner le jour de l'année à partir d'une date.

Cette fonction accepte un argument et renvoie une valeur comprise entre 1 et 366 , selon le jour de l'année représenté par la partie jour de l'argument.

Syntaxe

La syntaxe ressemble à ceci :

DAYOFYEAR(date)

date est la valeur de date à partir de laquelle vous souhaitez renvoyer le jour de l'année.

Exemple

Voici un exemple pour illustrer.

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

Résultat :

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

Dans cet exemple, afin de démontrer l'effet approprié, j'exécute cette fonction deux fois à deux dates différentes - l'une au début de l'année et l'autre à la fin de l'année.

DAYOFYEAR() contre DAYOFMONTH()

Voici un exemple pour démontrer la différence entre le DAYOFYEAR() et DAYOFMONTH() fonctions.

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

Résultat :

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

Le DAYOFMONTH() la fonction renvoie une valeur entre 1 et 31 (ou 0 pour les dates avec une partie zéro jour) qui représente le jour du mois. Il se réinitialise à 1 au début de chaque mois.

Le DAYOFYEAR() fonction d'autre part, renvoie une valeur entre 1 et 366 . Il se réinitialise à 1 au début de chaque année.

Un exemple de base de données

Voici un exemple d'utilisation de DAYOFYEAR() lors de l'interrogation d'une base de données :

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

Résultat :

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

Date/heure actuelle

Voici un exemple d'extraction de la partie jour de la date et de l'heure actuelles (qui est renvoyée à l'aide de NOW() fonction).

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

Résultat :

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

Une autre façon de faire est d'utiliser le CURDATE() fonction, qui renvoie uniquement la date (mais pas l'heure).

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

Résultat :

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