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

Sådan fungerer DAYOFMONTH() i MariaDB

I MariaDB, DAYOFMONTH() er en indbygget dato- og tidsfunktion, der returnerer dagen i måneden fra en given dato.

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

Resultatet er i området 1 til 31 . Men hvis datoen har en dag på nul (for eksempel '0000-00-00' eller '2021-00-00' ), er resultatet 0 .

Syntaks

Syntaksen ser sådan ud:

DAYOFMONTH(date) 

Hvor date er den dato, dagen skal udtrækkes fra.

Eksempel

Her er et eksempel:

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

Resultat:

+--------------------------------+| DAYOFMONTH('2030-01-25') |+--------------------------------+| 25 |+---------------------------+

Dato-tidsværdier

Det fungerer også med datetime-værdier:

SELECT DAYOFMONTH('2030-01-25 10:30:45'); 

Resultat:

+----------------------------------------+| DAYOFMONTH('2030-01-25 10:30:45') |+-------------------------------- --+| 25 |+--------------------------------------------+

Nul dage

Her er et eksempel, der bruger en dag på nul i datoen:

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

Resultat:

+--------------------------------+| DAYOFMONTH('2030-00-00') |+--------------------------------+| 0 |+---------------------------------+

Numeriske datoer

Det er også muligt at videregive datoer som et tal, så længe det giver mening som en dato.

Eksempel

SELECT DAYOFMONTH(20300125); 

Resultat:

+-----------------------------+| MÅNEDSDAG(20300125) |+---------------------------+| 25 |+-----------------------------+

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

SELECT DAYOFMONTH(300125); 

Resultat:

+---------------------------+| MÅNEDSDAG(300125) |+------------------------+| 25 |+---------------------+

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

SELECT DAYOFMONTH(20300135); 

Resultat:

+-----------------------------+| MÅNEDSDAG(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 
    DAYOFMONTH('2030/01/25'),
    DAYOFMONTH('2030,01,25'),
    DAYOFMONTH('2030:01:25'),
    DAYOFMONTH('2030;01!25'); 

Resultat (ved hjælp af lodret output):

DAYOFMONTH('2030/01/25'):25DAYOFMONTH('2030,01,25'):25DAYOFMONTH('2030:01:25'):25DAYOFMONTH('2030;01!25'):25

før>

Aktuel dato

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

SELECT 
    NOW(),
    DAYOFMONTH(NOW()); 

Resultat:

+---------------------+------------------------+| NU() | MÅNEDSDAG(NU()) |+--------------------------+-------------------+ | 13-05-2021 09:02:41 | 13 |+---------------------+------------------------+

Ugyldige argumenter

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

SELECT DAYOFMONTH('Homer'); 

Resultat:

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

Manglende argument

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

SELECT DAYOFMONTH(); 

Resultat:

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

Og endnu et eksempel:

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

Resultat:

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

  1. Hvordan kan jeg slette dublerede rækker i en tabel

  2. Top PG Clustering High Availability Solutions til PostgreSQL

  3. Er der nogen grund til at bekymre sig om kolonnerækkefølgen i en tabel?

  4. Sådan konverteres en MySQL-database til UTF-8-kodning