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)
Où 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 | +------------+----------------------+