sql >> Database >  >> RDS >> MariaDB

MariaDB DAY() uitgelegd

In MariaDB, DAY() is een synoniem voor DAYOFMONTH() . Het geeft de dag van de maand terug vanaf een bepaalde datum.

Het accepteert één argument, namelijk de datum waarvan u de dag van de maand wilt retourneren.

Het resultaat ligt in het bereik 1 tot 31 . Als de datum echter een dagdeel van nul heeft (bijvoorbeeld '0000-00-00' of '2021-00-00' ), het resultaat is 0 .

Syntaxis

De syntaxis gaat als volgt:

DAY(date)

Waar date is de datum om de dag uit te halen.

Voorbeeld

Hier is een voorbeeld:

SELECT DAY('2045-05-18');

Resultaat:

+-------------------+
| DAY('2045-05-18') |
+-------------------+
|                18 |
+-------------------+

Datum/tijd-waarden

Het werkt ook met datetime-waarden:

SELECT DAY('2045-05-18 01:10:15');

Resultaat:

+----------------------------+
| DAY('2045-05-18 01:10:15') |
+----------------------------+
|                         18 |
+----------------------------+

Nul dagen

Hier is een voorbeeld dat een nuldag in de datum gebruikt:

SELECT DAY('0000-00-00');

Resultaat:

+-------------------+
| DAY('0000-00-00') |
+-------------------+
|                 0 |
+-------------------+

Numerieke datums

Het is ook mogelijk om datums als een getal door te geven, zolang het maar logisch is als een datum.

Voorbeeld

SELECT DAY(20220308);

Resultaat:

+---------------+
| DAY(20220308) |
+---------------+
|             8 |
+---------------+

Of zelfs het volgende (met een jaartal van twee cijfers):

SELECT DAY(220308);

Resultaat:

+-------------+
| DAY(220308) |
+-------------+
|           8 |
+-------------+

Maar het moet logisch zijn als een date. Dit gebeurt er als ik het daggedeelte verhoog naar een ongeldige dag:

SELECT DAY(220358);

Resultaat:

+-------------+
| DAY(220358) |
+-------------+
|        NULL |
+-------------+

Andere scheidingstekens

U kunt andere scheidingstekens voor de datum gebruiken. MariaDB is behoorlijk vergevingsgezind als het gaat om scheidingstekens op datums. Hier zijn enkele geldige voorbeelden:

SELECT 
    DAY('2028/12/30'),
    DAY('2028,12,30'),
    DAY('2028:12:30'),
    DAY('2028;12!30');

Resultaat (met verticale uitvoer):

DAY('2028/12/30'): 30
DAY('2028,12,30'): 30
DAY('2028:12:30'): 30
DAY('2028;12!30'): 30

Huidige datum

We kunnen NOW() doorgeven als het datumargument om de huidige datum te gebruiken:

SELECT 
    NOW(),
    DAY(NOW());

Resultaat:

+---------------------+------------+
| NOW()               | DAY(NOW()) |
+---------------------+------------+
| 2021-05-13 09:41:03 |         13 |
+---------------------+------------+

Ongeldige argumenten

Wanneer een ongeldig argument wordt doorgegeven, DAY() retourneert null :

SELECT DAY('Oops!');

Resultaat:

+--------------+
| DAY('Oops!') |
+--------------+
|         NULL |
+--------------+

Ontbrekend argument

Bellen DAY() met het verkeerde aantal argumenten, of zonder het doorgeven van argumenten, resulteert in een fout:

SELECT DAY();

Resultaat:

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')' at line 1

En nog een voorbeeld:

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

Resultaat:

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ' '2045-05-08')' at line 1

  1. SequelizeConnectionError:zelfondertekend certificaat

  2. SQL-controle in SQL Developer

  3. 4 manieren om de database-sortering in MariaDB te krijgen

  4. Oracle Date datatype, getransformeerd naar 'YYYY-MM-DD HH24:MI:SS TMZ' via SQL