I MariaDB, DAY()
er et synonym for DAYOFMONTH()
. Det returnerer dagen i måneden fra en given dato.
Den accepterer ét argument, som er den dato, du ønsker at returnere dagen i måneden 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:
DAY(date)
Hvor date
er den dato, dagen skal udtrækkes fra.
Eksempel
Her er et eksempel:
SELECT DAY('2045-05-18');
Resultat:
+------------------------+| DAG('2045-05-18') |+--------------------+| 18 |+--------------------+
Dato-tidsværdier
Det fungerer også med datetime-værdier:
SELECT DAY('2045-05-18 01:10:15');
Resultat:
+------------------------------------+| DAG('2045-05-18 01:10:15') |+--------------------------------+| 18 |+------------------------------------+
Nul dage
Her er et eksempel, der bruger en dag på nul i datoen:
SELECT DAY('0000-00-00');
Resultat:
+------------------------+| DAG('0000-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 DAY(20220308);
Resultat:
+----------------+| DAG(20220308) |+---------------+| 8 |+---------------------+
Eller endda følgende (som bruger et tocifret årstal):
SELECT DAY(220308);
Resultat:
+--------------+| DAG(220308) |+-------------+| 8 |+-------------+
Men det skal give mening som en date. Her er, hvad der sker, hvis jeg øger dagsdelen til en ugyldig dag:
SELECT DAY(220358);
Resultat:
+--------------+| DAG(220358) |+-------------+| 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
DAY('2028/12/30'),
DAY('2028,12,30'),
DAY('2028:12:30'),
DAY('2028;12!30');
Resultat (ved hjælp af lodret output):
DAY('2028/12/30'):30DAY('2028,12,30'):30DAY('2028:12:30'):30DAY('2028;12!30'):30Aktuel dato
Vi kan sende
NOW()
som dato-argument for at bruge den aktuelle dato:SELECT NOW(), DAY(NOW());
Resultat:
+----------------------+--------+| NU() | DAG(NU()) |+----------------------+-----------+| 13-05-2021 09:41:03 | 13 |+---------------------+------------+Ugyldige argumenter
Når et ugyldigt argument sendes,
DAY()
returnerernull
:SELECT DAY('Oops!');
Resultat:
+--------------+| DAY('Ups!') |+---------------+| NULL |+--------------+Manglende argument
Kalder
DAY()
med det forkerte antal argumenter, eller uden at sende nogen argumenter, resulterer det i en fejl:SELECT DAY();
Resultat:
FEJL 1064 (42000):Du har en fejl i din SQL-syntaks; tjek manualen, der svarer til din MariaDB-serverversion for den rigtige syntaks til brug i nærheden af ')' på linje 1Og endnu et eksempel:
SELECT DAY('2030-01-25', '2045-05-08');
Resultat:
FEJL 1064 (42000):Du har en fejl i din SQL-syntaks; tjek manualen, der svarer til din MariaDB-serverversion for den rigtige syntaks til brug nær ''2045-05-08')' på linje 1