sql >> Database >  >> RDS >> MariaDB

Hoe MAAND() werkt in MariaDB

In MariaDB, MONTH() is een ingebouwde datum- en tijdfunctie die de maand retourneert uit een bepaalde datumuitdrukking.

Het accepteert één argument, namelijk de datum waarvan u de maand wilt extraheren.

Het geeft de maand terug als een getal in het bereik 1 tot 12 voor januari tot en met december. Als de datum een ​​maanddeel van nul heeft (bijv. 0000-00-00 of 2025-00-00 ), het resultaat is 0 .

Syntaxis

De syntaxis gaat als volgt:

MONTH(date)

Waar date is de datumuitdrukking om de maand uit te halen.

Voorbeeld

Hier is een voorbeeld:

SELECT MONTH('2030-08-01');

Resultaat:

+---------------------+
| MONTH('2030-08-01') |
+---------------------+
|                   8 |
+---------------------+

Datum/tijd-waarden

Het werkt ook met datetime-waarden:

SELECT MONTH('2030-08-01 10:30:45');

Resultaat:

+------------------------------+
| MONTH('2030-08-01 10:30:45') |
+------------------------------+
|                            8 |
+------------------------------+

Nul maanden

Nul maanden resulteert in 0 .

Voorbeeld:

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

Resultaat:

+---------------------+
| MONTH('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 MONTH(20301125);

Resultaat:

+-----------------+
| MONTH(20301125) |
+-----------------+
|              11 |
+-----------------+

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

SELECT MONTH(301125);

Resultaat:

+---------------+
| MONTH(301125) |
+---------------+
|            11 |
+---------------+

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

SELECT MONTH(20301135);

Resultaat:

+-----------------+
| MONTH(20301135) |
+-----------------+
|            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 
    MONTH('2030/06/25'),
    MONTH('2030,06,25'),
    MONTH('2030:06:25'),
    MONTH('2030;06!25');

Resultaat (met verticale uitvoer):

MONTH('2030/06/25'): 6
MONTH('2030,06,25'): 6
MONTH('2030:06:25'): 6
MONTH('2030;06!25'): 6

Huidige datum

We kunnen NOW() doorgeven als het datetime-argument om de huidige datum te gebruiken:

SELECT 
    NOW(),
    MONTH(NOW());

Resultaat:

+---------------------+--------------+
| NOW()               | MONTH(NOW()) |
+---------------------+--------------+
| 2021-05-16 15:00:06 |            5 |
+---------------------+--------------+

Ongeldige argumenten

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

SELECT MONTH('2030-65-78');

Resultaat:

+---------------------+
| MONTH('2030-65-78') |
+---------------------+
|                NULL |
+---------------------+

Ontbrekend argument

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

SELECT MONTH();

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 MONTH('2030-12-10', '2031-12-10');

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 ' '2031-12-10')' at line 1

  1. Hoe u de huidige datum en tijd kunt krijgen met tijdzoneverschuiving in PostgreSQL

  2. AVG ophalen waarbij nul- of nulwaarden worden genegeerd

  3. Kolommen wijzigen of scripts genereren met behulp van GUI in SQL Server - SQL Server / T-SQL-zelfstudie, deel 38

  4. Walkthrough:SQL Server High Availability instellen