sql >> Database >  >> RDS >> MariaDB

Hoe DAYOFMONTH() werkt in MariaDB

In MariaDB, DAYOFMONTH() is een ingebouwde datum- en tijdfunctie die de dag van de maand vanaf een bepaalde datum retourneert.

Het accepteert één argument, namelijk de datum waaruit u de dag van de maand wilt halen.

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:

DAYOFMONTH(date)

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

Voorbeeld

Hier is een voorbeeld:

SELECT DAYOFMONTH('2030-01-25');

Resultaat:

+--------------------------+
| DAYOFMONTH('2030-01-25') |
+--------------------------+
|                       25 |
+--------------------------+

Datum/tijd-waarden

Het werkt ook met datetime-waarden:

SELECT DAYOFMONTH('2030-01-25 10:30:45');

Resultaat:

+-----------------------------------+
| DAYOFMONTH('2030-01-25 10:30:45') |
+-----------------------------------+
|                                25 |
+-----------------------------------+

Nul dagen

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

SELECT DAYOFMONTH('2030-00-00');

Resultaat:

+--------------------------+
| DAYOFMONTH('2030-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 DAYOFMONTH(20300125);

Resultaat:

+----------------------+
| DAYOFMONTH(20300125) |
+----------------------+
|                   25 |
+----------------------+

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

SELECT DAYOFMONTH(300125);

Resultaat:

+--------------------+
| DAYOFMONTH(300125) |
+--------------------+
|                 25 |
+--------------------+

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

SELECT DAYOFMONTH(20300135);

Resultaat:

+----------------------+
| DAYOFMONTH(20300135) |
+----------------------+
|                 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 
    DAYOFMONTH('2030/01/25'),
    DAYOFMONTH('2030,01,25'),
    DAYOFMONTH('2030:01:25'),
    DAYOFMONTH('2030;01!25');

Resultaat (met verticale uitvoer):

DAYOFMONTH('2030/01/25'): 25
DAYOFMONTH('2030,01,25'): 25
DAYOFMONTH('2030:01:25'): 25
DAYOFMONTH('2030;01!25'): 25

Huidige datum

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

SELECT 
    NOW(),
    DAYOFMONTH(NOW());

Resultaat:

+---------------------+-------------------+
| NOW()               | DAYOFMONTH(NOW()) |
+---------------------+-------------------+
| 2021-05-13 09:02:41 |                13 |
+---------------------+-------------------+

Ongeldige argumenten

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

SELECT DAYOFMONTH('Homer');

Resultaat:

+---------------------+
| DAYOFMONTH('Homer') |
+---------------------+
|                NULL |
+---------------------+

Ontbrekend argument

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

SELECT DAYOFMONTH();

Resultaat:

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'DAYOFMONTH'

En nog een voorbeeld:

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

Resultaat:

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'DAYOFMONTH'

  1. MySQL vs. MariaDB:wat u moet weten

  2. Gegevenspartitionering voor grootschalige toepassingen

  3. 'datetime2'-fout bij gebruik van entiteitsframework in VS 2010 .net 4.0

  4. Nieuwe Oracle-compatibiliteitsfuncties in PostgresPlus Advanced Server 9.3Beta