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

DAYOFYEAR() Eksempler – MySQL

Når du kører forespørgsler i MySQL, kan du bruge DAYOFYEAR() funktion for at returnere dagen i året fra en dato.

Denne funktion accepterer ét argument, og den returnerer en værdi mellem 1 og 366 , afhængigt af hvilken dag på året dagdelen af ​​argumentet repræsenterer.

Syntaks

Syntaksen ser sådan ud:

DAYOFYEAR(date)

Hvor date er den datoværdi, som du vil have årets dag returneret fra.

Eksempel

Her er et eksempel til at demonstrere.

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

Resultat:

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

I dette eksempel, for at demonstrere den korrekte effekt, kører jeg denne funktion to gange på to forskellige datoer – den ene i starten af ​​året og den anden i slutningen af ​​året.

DAYOFYEAR() vs. DAYOFMONTH()

Her er et eksempel for at demonstrere forskellen mellem DAYOFYEAR() og DAYOFMONTH() funktioner.

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

Resultat:

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

DAYOFMONTH() funktion returnerer en værdi mellem 1 og 31 (eller 0 for datoer med en dag på nul), der repræsenterer dagen i måneden. Den nulstilles til 1 i begyndelsen af ​​hver måned.

DAYOFYEAR() funktion returnerer på den anden side en værdi mellem 1 og 366 . Den nulstilles til 1 i begyndelsen af ​​hvert år.

Et databaseeksempel

Her er et eksempel på brug af DAYOFYEAR() når du forespørger i en database:

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

Resultat:

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

Aktuel dato/klokkeslæt

Her er et eksempel på udtrækning af dagsdelen fra den aktuelle dato og klokkeslæt (som returneres ved hjælp af NOW() funktion).

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

Resultat:

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

En anden måde at gøre dette på er at bruge CURDATE() funktion, som kun returnerer datoen (men ikke klokkeslættet).

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

Resultat:

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

  1. PostgreSQL og C# datatyper

  2. Sådan opretter du forbindelse til MySQL-databasen

  3. MySQL OPDATERING og VÆLG i én gang

  4. SQL Server 2008 række Indsæt og opdater tidsstempler