sql >> Databasteknik >  >> RDS >> MariaDB

Hur DAYOFMONTH() fungerar i MariaDB

I MariaDB, DAYOFMONTH() är en inbyggd datum- och tidsfunktion som returnerar dagen i månaden från ett givet datum.

Den accepterar ett argument, vilket är det datum du vill extrahera månadsdagen från.

Resultatet ligger i intervallet 1 till 31 . Men om datumet har en nolldag del (till exempel '0000-00-00' eller '2021-00-00' ), blir resultatet 0 .

Syntax

Syntaxen ser ut så här:

DAYOFMONTH(date) 

Där date är datumet att extrahera dagen från.

Exempel

Här är ett exempel:

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

Resultat:

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

Datetime-värden

Det fungerar också med datetime-värden:

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

Resultat:

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

Noll dagar

Här är ett exempel som använder en nolldag i datumet:

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

Resultat:

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

Numeriska datum

Det är också möjligt att skicka datum som ett nummer, så länge det är vettigt som ett datum.

Exempel

SELECT DAYOFMONTH(20300125); 

Resultat:

+-----------------------------+| DAYOFMONTH(20300125) |+----------------------------+| 25 |+-----------------------------+

Eller till och med följande (som använder ett tvåsiffrigt år):

SELECT DAYOFMONTH(300125); 

Resultat:

+----------------------------+| DAYOFMONTH(300125) |+---------------------+| 25 |+----------------------------+

Men det måste vara vettigt som en dejt. Så här händer om jag ökar dagdelen till en ogiltig dag:

SELECT DAYOFMONTH(20300135); 

Resultat:

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

Resultat (med vertikal utdata):

DAYOFMONTH('2030/01/25'):25DAYOFMONTH('2030,01,25'):25DAYOFMONTH('2030:01:25'):25DAYOFMONTH('2030;01!25'):25 före> 

Aktuellt datum

Vi kan skicka NOW() som datumargument för att använda det aktuella datumet:

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

Resultat:

+----------------------------+------------------------+| NU() | DAG I MÅNAD(NU()) |+--------------------------+-------------------+ | 2021-05-13 09:02:41 | 13 |+---------------------+------------------------+

Ogiltiga argument

När ett ogiltigt argument skickades, DAYOFMONTH() returnerar null :

SELECT DAYOFMONTH('Homer'); 

Resultat:

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

Argument saknas

Anropar DAYOFMONTH() med fel antal argument, eller utan att skicka några argument, resulterar i ett fel:

SELECT DAYOFMONTH(); 

Resultat:

ERROR 1582 (42000):Fel parameterräkning i anropet till den ursprungliga funktionen 'DAYOFMONTH'

Och ett annat exempel:

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

Resultat:

ERROR 1582 (42000):Fel parameterräkning i anropet till den ursprungliga funktionen 'DAYOFMONTH'

  1. Vad betyder det när MySQL är i tillståndet Skickar data?

  2. Flera frågor körs i java i en enda sats

  3. Returnera det aktuella inloggningsnamnet i SQL Server (T-SQL)

  4. Tips för att övervaka PostgreSQL för Moodle