I MariaDB, DAY()
är en synonym för DAYOFMONTH()
. Den returnerar dagen i månaden från ett givet datum.
Den accepterar ett argument, vilket är det datum du vill returnera 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:
DAY(date)
Där date
är datumet att extrahera dagen från.
Exempel
Här är ett exempel:
SELECT DAY('2045-05-18');
Resultat:
+------------------------+| DAG('2045-05-18') |+--------------------+| 18 |+--------------------+
Datetime-värden
Det fungerar också med datetime-värden:
SELECT DAY('2045-05-18 01:10:15');
Resultat:
+------------------------------------+| DAY('2045-05-18 01:10:15') |+----------------------------------+| 18 |+------------------------------------+
Noll dagar
Här är ett exempel som använder en nolldag i datumet:
SELECT DAY('0000-00-00');
Resultat:
+------------------------+| DAG('0000-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 DAY(20220308);
Resultat:
+---------------+| DAG(20220308) |+--------------+| 8 |+---------------------+
Eller till och med följande (som använder ett tvåsiffrigt år):
SELECT DAY(220308);
Resultat:
+-------------+| DAG(220308) |+-------------+| 8 |+-------------+
Men det måste vara vettigt som en dejt. Så här händer om jag ökar dagdelen till en ogiltig dag:
SELECT DAY(220358);
Resultat:
+-------------+| DAG(220358) |+-------------+| 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
DAY('2028/12/30'),
DAY('2028,12,30'),
DAY('2028:12:30'),
DAY('2028;12!30');
Resultat (med vertikal utdata):
DAY('2028/12/30'):30DAY('2028,12,30'):30DAY('2028:12:30'):30DAY('2028;12!30'):30Aktuellt datum
Vi kan skicka
NOW()
som datumargument för att använda det aktuella datumet:SELECT NOW(), DAY(NOW());
Resultat:
+----------------------------+--------+| NU() | DAG(NU()) |+----------------------------+-----------+| 2021-05-13 09:41:03 | 13 |+---------------------+------------+Ogiltiga argument
När ett ogiltigt argument skickades,
DAY()
returnerarnull
:SELECT DAY('Oops!');
Resultat:
+--------------+| DAY('Hoppsan!') |+---------------+| NULL |+--------------+Argument saknas
Ringer
DAY()
med fel antal argument, eller utan att skicka några argument, resulterar i ett fel:SELECT DAY();
Resultat:
ERROR 1064 (42000):Du har ett fel i din SQL-syntax; kontrollera manualen som motsvarar din MariaDB-serverversion för rätt syntax att använda nära ')' på rad 1Och ett annat exempel:
SELECT DAY('2030-01-25', '2045-05-08');
Resultat:
ERROR 1064 (42000):Du har ett fel i din SQL-syntax; kontrollera manualen som motsvarar din MariaDB-serverversion för rätt syntax att använda nära ''2045-05-08')' på rad 1