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'