sql >> Database teknologi >  >> RDS >> MariaDB

Sådan fungerer WEEKDAY() i MariaDB

I MariaDB, WEEKDAY() er en indbygget dato- og tidsfunktion, der returnerer ugedagen fra en given dato.

Den accepterer ét argument, som er den dato, du vil udtrække ugedagen fra.

Det returnerer dagen som et tal. Indeksnummereringen starter ved nul for mandag (dvs. 0). =mandag, 1 =tirsdag osv.). Dette er i modsætning til DAYOFWEEK() , som overholder ODBC-standarden (1 =søndag, 2 =mandag osv.).

Syntaks

Syntaksen ser sådan ud:

WEEKDAY(date) 

Hvor date er den dato, man henter ugedagen fra.

Eksempel

Her er et eksempel:

SELECT WEEKDAY('2030-01-25'); 

Resultat:

+------------------------------+| WEEKDAY('2030-01-25') |+-----------------------------+| 4 |+------------------------------+

Sammenlignet med Dagens navn

Her er endnu en ved siden af ​​DAYNAME() for at returnere dagens navn:

SELECT 
    WEEKDAY('2030-01-21'),
    DAYNAME('2030-01-21'); 

Resultat:

+------------------------+---------- -+| WEEKDAY('2030-01-21') | DAGNAVN('2030-01-21') |+----------------------+-------------------- ----------+| 0 | mandag |+------------------------------------------------ +

Som nævnt starter indeksnummereringen ved 0 for mandag.

Her er søndag:

SELECT 
    WEEKDAY('2030-01-20'),
    DAYNAME('2030-01-20'); 

Resultat:

+------------------------+---------- -+| WEEKDAY('2030-01-20') | DAGNAVN('2030-01-20') |+----------------------------+------------------- ----------+| 6 | Søndag |+------------------------+----------- +

Dato-tidsværdier

Det fungerer også med datetime-værdier:

SELECT WEEKDAY('2030-01-24 10:30:45'); 

Resultat:

+--------------------------------+| WEEKDAY('2030-01-24 10:30:45') |+----------------------------------------+ | 3 |+--------------------------------+

Nul dage

Nul dage resulterer i null .

Eksempel:

SELECT WEEKDAY('2030-00-00'); 

Resultat:

+------------------------------+| WEEKDAY('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 WEEKDAY(20300125); 

Resultat:

+------------------------+| WEEKDAY(20300125) |+--------------------+| 4 |+--------------------+

Eller endda følgende (som bruger et tocifret årstal):

SELECT WEEKDAY(300125); 

Resultat:

+----------------+| UGEDAG(300125) |+-----------------+| 4 |+-----------------+

Men det skal give mening som en date. Her er, hvad der sker, hvis jeg øger dagsdelen til en ugyldig dag:

SELECT WEEKDAY(20300135); 

Resultat:

+------------------------+| UGEDAG(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 
    WEEKDAY('2030/01/25'),
    WEEKDAY('2030,01,25'),
    WEEKDAY('2030:01:25'),
    WEEKDAY('2030;01!25'); 

Resultat (ved hjælp af lodret output):

WEEKDAY('2030/01/25'):4WEEKDAY('2030,01,25'):4WEEKDAY('2030:01:25'):4WEEKDAY('2030;01!25'):4 

Aktuel dato

Vi kan sende NOW() som dato-argument for at bruge den aktuelle dato:

SELECT 
    NOW(),
    WEEKDAY(NOW()); 

Resultat:

+---------------------+----------------+| NU() | UGEDAG(NU()) |+------------------------+----------------+| 15-05-2021 09:44:50 | 5 |+---------------------+----------------+

Ugyldige argumenter

Når et ugyldigt argument sendes, WEEKDAY() returnerer null :

SELECT WEEKDAY('Homer'); 

Resultat:

+------------------------+| WEEKDAY('Homer') |+------------------------+| NULL |+------------------+

Manglende argument

Kalder WEEKDAY() med det forkerte antal argumenter, eller uden at sende nogen argumenter, resulterer det i en fejl:

SELECT WEEKDAY(); 

Resultat:

FEJL 1582 (42000):Forkert parameterantal i kaldet til den oprindelige funktion 'WEEKDAY'

Og endnu et eksempel:

SELECT WEEKDAY('2030-01-25', '2045-05-08'); 

Resultat:

FEJL 1582 (42000):Forkert parameterantal i kaldet til den oprindelige funktion 'WEEKDAY'

  1. Fire ting, du ikke vidste om Amazon Aurora

  2. Log registreringsændringer i SQL-server i en revisionstabel

  3. Unitils og DBMaintainer - hvordan får man dem til at fungere med flere brugere/skemaer?

  4. QPSQL driver ikke indlæst Qt