I MariaDB, DAYOFYEAR()
är en inbyggd datum- och tidsfunktion som returnerar dagen på året från ett givet datum.
Den accepterar ett argument, vilket är det datum du vill extrahera årets dag från.
Den returnerar dagen som ett tal i intervallet 1
till 366
.
Syntax
Syntaxen ser ut så här:
DAYOFYEAR(date)
Där date
är datumet att hämta årets dag från.
Exempel
Här är ett exempel:
SELECT DAYOFYEAR('2030-12-25');
Resultat:
+------------------------+| DAYOFYEAR('2030-12-25') |+------------------------+| 359 |+------------------------+
Datetime-värden
Det fungerar också med datetime-värden:
SELECT DAYOFYEAR('2030-02-01 10:30:45');
Resultat:
+------------------------------------------+| DAYOFYEAR('2030-02-01 10:30:45') |+---------------------------------------- -+| 32 |+----------------------------------------+
Noll dagar
Noll dagar resulterar i null
.
Exempel:
SELECT DAYOFYEAR('2030-00-00');
Resultat:
+------------------------+| DAYOFYEAR('2030-00-00') |+--------------------------------+| NULL |+-------------------------+
Numeriska datum
Det är också möjligt att skicka datum som ett nummer, så länge det är vettigt som ett datum.
Exempel
SELECT DAYOFYEAR(20301125);
Resultat:
+----------------------------+| DAYOFYEAR(20301125) |+---------------------------+| 329 |+----------------------------+
Eller till och med följande (som använder ett tvåsiffrigt år):
SELECT DAYOFYEAR(301125);
Resultat:
+------------------------+| DAYOFYEAR(301125) |+------------------------+| 329 |+--------------------+
Men det måste vara vettigt som en dejt. Så här händer om jag ökar dagdelen till en ogiltig dag:
SELECT DAYOFYEAR(20300135);
Resultat:
+----------------------------+| DAYOFYEAR(20300135) |+---------------------------+| NULL |+----------------------------+
Andra avgränsare
Du kan använda andra avgränsare för datumet. MariaDB är ganska förlåtande när det kommer till avgränsare på datum. Här är några giltiga exempel:
SELECT
DAYOFYEAR('2030/06/25'),
DAYOFYEAR('2030,06,25'),
DAYOFYEAR('2030:06:25'),
DAYOFYEAR('2030;06!25');
Resultat (med vertikal utdata):
DAYOFYEAR('2030/06/25'):176DAYOFYEAR('2030,06,25'):176DAYOFYEAR('2030:06:25'):176DAYOFYEAR('2030;06!25'):176 före>Aktuellt datum
Vi kan skicka
NOW()
som datumargument för att använda det aktuella datumet:SELECT NOW(), DAYOFYEAR(NOW());
Resultat:
+---------------------+-----------------+| NU() | DAGÅR(NU()) |+--------------------------+------------------+| 2021-05-16 09:05:57 | 136 |+----------------------------+-----------------+Ogiltiga argument
När ett ogiltigt argument skickades,
DAYOFYEAR()
returnerarnull
:SELECT DAYOFYEAR('Friday');
Resultat:
+----------------------------+| DAYOFYEAR('fredag') |+---------------------------+| NULL |+----------------------------+Argument saknas
Anropar
DAYOFYEAR()
med fel antal argument, eller utan att skicka några argument, resulterar i ett fel:SELECT DAYOFYEAR();
Resultat:
ERROR 1582 (42000):Fel parameterräkning i anropet till den ursprungliga funktionen 'DAYOFYEAR'Och ett annat exempel:
SELECT DAYOFYEAR('2030-01-25', '2045-05-08');
Resultat:
ERROR 1582 (42000):Fel parameterräkning i anropet till den ursprungliga funktionen 'DAYOFYEAR'