sql >> Database teknologi >  >> RDS >> MariaDB

Sådan fungerer DAYOFYEAR() i MariaDB

I MariaDB, DAYOFYEAR() er en indbygget dato- og tidsfunktion, der returnerer dagen i året fra en given dato.

Den accepterer ét argument, som er den dato, du vil udtrække årets dag fra.

Det returnerer dagen som et tal i området 1 til 366 .

Syntaks

Syntaksen ser sådan ud:

DAYOFYEAR(date) 

Hvor date er den dato, man får årets dag fra.

Eksempel

Her er et eksempel:

SELECT DAYOFYEAR('2030-12-25'); 

Resultat:

+------------------------+| DAYOFYEAR('2030-12-25') |+------------------------+| 359 |+------------------------+

Dato-tidsværdier

Det fungerer også med datetime-værdier:

SELECT DAYOFYEAR('2030-02-01 10:30:45'); 

Resultat:

+----------------------------------------+| DAYOFYEAR('2030-02-01 10:30:45') |+-------------------------------- -+| 32 |+----------------------------------------+

Nul dage

Nul dage resulterer i null .

Eksempel:

SELECT DAYOFYEAR('2030-00-00'); 

Resultat:

+------------------------+| DAYOFYEAR('2030-00-00') |+------------------------+| NULL |+-------------------------+

Numeriske datoer

Det er også muligt at videregive datoer som et tal, så længe det giver mening som en dato.

Eksempel

SELECT DAYOFYEAR(20301125); 

Resultat:

+----------------------------+| DAYOFYEAR(20301125) |+---------------------------+| 329 |+-----------------------------+

Eller endda følgende (som bruger et tocifret årstal):

SELECT DAYOFYEAR(301125); 

Resultat:

+------------------------+| DAGÅR(301125) |+------------------------+| 329 |+--------------------+

Men det skal give mening som en date. Her er, hvad der sker, hvis jeg øger dagsdelen til en ugyldig dag:

SELECT DAYOFYEAR(20300135); 

Resultat:

+----------------------------+| DAYOFYEAR(20300135) |+--------------------------+| NULL |+----------------------------+

Andre afgrænsninger

Du kan bruge andre skilletegn for datoen. MariaDB er ret tilgivende, når det kommer til afgrænsninger på datoer. Her er nogle gyldige eksempler:

SELECT 
    DAYOFYEAR('2030/06/25'),
    DAYOFYEAR('2030,06,25'),
    DAYOFYEAR('2030:06:25'),
    DAYOFYEAR('2030;06!25'); 

Resultat (ved hjælp af lodret output):

DAYOFYEAR('2030/06/25'):176DAYOFYEAR('2030,06,25'):176DAYOFYEAR('2030:06:25'):176DAYOFYEAR('2030;06!25'):176 før> 

Aktuel dato

Vi kan sende NOW() som dato-argument for at bruge den aktuelle dato:

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

Resultat:

+---------------------+----------------+| NU() | DAGÅR(NU()) |+----------------------------+-----------------+| 16-05-2021 09:05:57 | 136 |+---------------------+-----------------+

Ugyldige argumenter

Når et ugyldigt argument sendes, DAYOFYEAR() returnerer null :

SELECT DAYOFYEAR('Friday'); 

Resultat:

+----------------------------+| DAYOFYEAR('fredag') |+--------------------------+| NULL |+----------------------------+

Manglende argument

Kalder DAYOFYEAR() med det forkerte antal argumenter, eller uden at sende nogen argumenter, resulterer det i en fejl:

SELECT DAYOFYEAR(); 

Resultat:

FEJL 1582 (42000):Forkert parameterantal i kaldet til den oprindelige funktion 'DAYOFYEAR'

Og endnu et eksempel:

SELECT DAYOFYEAR('2030-01-25', '2045-05-08'); 

Resultat:

FEJL 1582 (42000):Forkert parameterantal i kaldet til den oprindelige funktion 'DAYOFYEAR'

  1. Specialtegn i MySQL-tabelnavn

  2. Overvågning af transaktionslog

  3. SQL-fejl:ORA-00942 tabel eller visning findes ikke

  4. Deaktiver alle tabelbegrænsninger i Oracle