In MariaDB, DAYOFYEAR() is een ingebouwde datum- en tijdfunctie die de dag van het jaar vanaf een bepaalde datum retourneert.
Het accepteert één argument, namelijk de datum waaruit u de dag van het jaar wilt halen.
Het geeft de dag terug als een getal in het bereik 1 tot 366 .
Syntaxis
De syntaxis gaat als volgt:
DAYOFYEAR(date)
Waar date is de datum om de dag van het jaar uit te halen.
Voorbeeld
Hier is een voorbeeld:
SELECT DAYOFYEAR('2030-12-25'); Resultaat:
+-------------------------+
| DAYOFYEAR('2030-12-25') |
+-------------------------+
| 359 |
+-------------------------+ Datum/tijd-waarden
Het werkt ook met datetime-waarden:
SELECT DAYOFYEAR('2030-02-01 10:30:45'); Resultaat:
+----------------------------------+
| DAYOFYEAR('2030-02-01 10:30:45') |
+----------------------------------+
| 32 |
+----------------------------------+ Nul dagen
Nul dagen resulteren in null .
Voorbeeld:
SELECT DAYOFYEAR('2030-00-00'); Resultaat:
+-------------------------+
| DAYOFYEAR('2030-00-00') |
+-------------------------+
| NULL |
+-------------------------+ Numerieke datums
Het is ook mogelijk om datums als een getal door te geven, zolang het maar logisch is als een datum.
Voorbeeld
SELECT DAYOFYEAR(20301125); Resultaat:
+---------------------+ | DAYOFYEAR(20301125) | +---------------------+ | 329 | +---------------------+
Of zelfs het volgende (met een jaartal van twee cijfers):
SELECT DAYOFYEAR(301125); Resultaat:
+-------------------+ | DAYOFYEAR(301125) | +-------------------+ | 329 | +-------------------+
Maar het moet logisch zijn als een date. Dit gebeurt er als ik het daggedeelte verhoog naar een ongeldige dag:
SELECT DAYOFYEAR(20300135); Resultaat:
+---------------------+ | DAYOFYEAR(20300135) | +---------------------+ | NULL | +---------------------+
Andere scheidingstekens
U kunt andere scheidingstekens voor de datum gebruiken. MariaDB is behoorlijk vergevingsgezind als het gaat om scheidingstekens op datums. Hier zijn enkele geldige voorbeelden:
SELECT
DAYOFYEAR('2030/06/25'),
DAYOFYEAR('2030,06,25'),
DAYOFYEAR('2030:06:25'),
DAYOFYEAR('2030;06!25'); Resultaat (met verticale uitvoer):
DAYOFYEAR('2030/06/25'): 176
DAYOFYEAR('2030,06,25'): 176
DAYOFYEAR('2030:06:25'): 176
DAYOFYEAR('2030;06!25'): 176 Huidige datum
We kunnen NOW() doorgeven als het datumargument om de huidige datum te gebruiken:
SELECT
NOW(),
DAYOFYEAR(NOW()); Resultaat:
+---------------------+------------------+ | NOW() | DAYOFYEAR(NOW()) | +---------------------+------------------+ | 2021-05-16 09:05:57 | 136 | +---------------------+------------------+
Ongeldige argumenten
Wanneer een ongeldig argument wordt doorgegeven, DAYOFYEAR() retourneert null :
SELECT DAYOFYEAR('Friday'); Resultaat:
+---------------------+
| DAYOFYEAR('Friday') |
+---------------------+
| NULL |
+---------------------+ Ontbrekend argument
Bellen DAYOFYEAR() met het verkeerde aantal argumenten, of zonder het doorgeven van argumenten, resulteert in een fout:
SELECT DAYOFYEAR(); Resultaat:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'DAYOFYEAR'
En nog een voorbeeld:
SELECT DAYOFYEAR('2030-01-25', '2045-05-08'); Resultaat:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'DAYOFYEAR'