sql >> Databasteknik >  >> RDS >> MariaDB

Hur DAYOFYEAR() fungerar i MariaDB

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() returnerar null :

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'

  1. Anta ett mänskligt förhållningssätt till datastyrning

  2. Få ID från en villkorlig INSERT

  3. SQL Server Express Backup Database | Så här schemalägger du automatisera och rensa SQL Express-säkerhetskopia

  4. Java Crosstab - förberedd uttalandefråga