sql >> Database >  >> RDS >> Mysql

DAYOFYEAR() Voorbeelden – MySQL

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 |
+------------+----------------------+

  1. Top 18 gratis en veelgebruikte, open source NoSQL-databases

  2. Fix "ERROR 1250 (42000):Tabel '...' van een van de SELECT's kan niet worden gebruikt in de ORDER-clausule" in MariaDB

  3. Problemen oplossen wanneer er geen werkthreads meer zijn

  4. De PostgreSQL-upgrade ontwarren