sql >> Database >  >> RDS >> MariaDB

Hoe DAYOFYEAR() werkt in MariaDB

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'

  1. Een trigger maken in Oracle Express

  2. Hoe pg_sleep() werkt in PostgreSQL

  3. Java van Oracle op Mac begrijpen

  4. Krijg een lijst met tabellen met of zonder primaire sleutelbeperking in alle databases van SQL Server-instantie - SQL Server / TSQL-zelfstudie, deel 61