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()
returnerarnull
: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'