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()
returnerernull
: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'