Wanneer u query's uitvoert in MySQL, kunt u de DAYOFYEAR()
. gebruiken functie om de dag van het jaar uit een datum te halen.
Deze functie accepteert één argument en retourneert een waarde tussen 1 en 366 , afhankelijk van welke dag van het jaar het daggedeelte van het argument vertegenwoordigt.
Syntaxis
De syntaxis gaat als volgt:
DAYOFYEAR(date)
Waar date
is de datumwaarde waarvan u de dag van het jaar wilt retourneren.
Voorbeeld
Hier is een voorbeeld om te demonstreren.
SELECT DAYOFYEAR('2019-01-01') AS 'Date 1', DAYOFYEAR('2019-12-31') AS 'Date 2';
Resultaat:
+--------+--------+ | Date 1 | Date 2 | +--------+--------+ | 1 | 365 | +--------+--------+
In dit voorbeeld, om het juiste effect aan te tonen, voer ik deze functie twee keer uit op twee verschillende data:een aan het begin van het jaar en de andere aan het einde van het jaar.
DAYOFYEAR() vs DAYOFMONTH()
Hier is een voorbeeld om het verschil aan te tonen tussen de DAYOFYEAR()
en DAYOFMONTH()
functies.
SET @date = '2019-10-03'; SELECT @date, DAYOFMONTH(@date) AS 'Day of Month', DAYOFYEAR(@date) AS 'Day of Year';
Resultaat:
+------------+--------------+-------------+ | @date | Day of Month | Day of Year | +------------+--------------+-------------+ | 2019-10-03 | 3 | 276 | +------------+--------------+-------------+
De DAYOFMONTH()
functie retourneert een waarde tussen 1 en 31 (of 0 voor datums met een dagdeel van nul) dat de dag van de maand vertegenwoordigt. Het wordt teruggezet naar 1 aan het begin van elke maand.
De DAYOFYEAR()
functie aan de andere kant, retourneert een waarde tussen 1 en 366 . Het wordt teruggezet naar 1 aan het begin van elk jaar.
Een databasevoorbeeld
Hier is een voorbeeld van het gebruik van DAYOFYEAR()
bij het opvragen van een database:
USE sakila; SELECT payment_date AS 'Date/Time', DAYOFYEAR(payment_date) AS 'Day of Year' FROM payment WHERE payment_id = 1;
Resultaat:
+---------------------+-------------+ | Date/Time | Day of Year | +---------------------+-------------+ | 2005-05-25 11:30:37 | 145 | +---------------------+-------------+
Huidige datum/tijd
Hier is een voorbeeld van het extraheren van het daggedeelte van de huidige datum en tijd (die wordt geretourneerd met de NOW()
functie).
SELECT NOW(), DAYOFYEAR(NOW());
Resultaat:
+---------------------+------------------+ | NOW() | DAYOFYEAR(NOW()) | +---------------------+------------------+ | 2018-06-26 08:23:04 | 177 | +---------------------+------------------+
Een andere manier om dit te doen is door de CURDATE()
. te gebruiken functie, die alleen de datum retourneert (maar niet de tijd).
SELECT CURDATE(), DAYOFYEAR(CURDATE());
Resultaat:
+------------+----------------------+ | CURDATE() | DAYOFYEAR(CURDATE()) | +------------+----------------------+ | 2018-06-26 | 177 | +------------+----------------------+