sql >> Database >  >> RDS >> MariaDB

Hoe QUARTER() werkt in MariaDB

In MariaDB, QUARTER() is een ingebouwde datum- en tijdfunctie die het kwartaal van een bepaalde datumuitdrukking retourneert.

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

Het geeft het kwartaal terug als een getal in het bereik 1 tot 4 . Voor datums met nul maanden (bijv. 0000-00-00 of 2025-00-00 ), het resultaat is 0 .

Syntaxis

De syntaxis gaat als volgt:

QUARTER(date)

Waar date is de datumuitdrukking om het kwartaal uit te halen.

Voorbeeld

Hier is een voorbeeld:

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

Resultaat:

+-----------------------+
| QUARTER('2030-08-01') |
+-----------------------+
|                     3 |
+-----------------------+

Datum/tijd-waarden

Het werkt ook met datetime-waarden:

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

Resultaat:

+--------------------------------+
| QUARTER('2030-08-01 10:30:45') |
+--------------------------------+
|                              3 |
+--------------------------------+

Nul maanden

Datums met nul maanden resulteren in 0 .

Voorbeeld:

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

Resultaat:

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

Resultaat:

+-------------------+
| QUARTER(20301125) |
+-------------------+
|                 4 |
+-------------------+

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

SELECT QUARTER(301125);

Resultaat:

+-----------------+
| QUARTER(301125) |
+-----------------+
|               4 |
+-----------------+

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

SELECT QUARTER(20301135);

Resultaat:

+-------------------+
| QUARTER(20301135) |
+-------------------+
|              NULL |
+-------------------+
1 row in set, 1 warning (0.000 sec)

We kunnen de waarschuwing als volgt controleren:

SHOW WARNINGS;

Resultaat:

+---------+------+--------------------------------------+
| Level   | Code | Message                              |
+---------+------+--------------------------------------+
| Warning | 1292 | Incorrect datetime value: '20301135' |
+---------+------+--------------------------------------+

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

Resultaat (met verticale uitvoer):

QUARTER('2030/06/25'): 2
QUARTER('2030,06,25'): 2
QUARTER('2030:06:25'): 2
QUARTER('2030;06!25'): 2

Huidige datum

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

SELECT 
    NOW(),
    QUARTER(NOW());

Resultaat:

+---------------------+----------------+
| NOW()               | QUARTER(NOW()) |
+---------------------+----------------+
| 2021-05-18 09:23:27 |              2 |
+---------------------+----------------+

Ongeldige argumenten

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

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

Resultaat:

+-----------------------+
| QUARTER('2030-65-78') |
+-----------------------+
|                  NULL |
+-----------------------+
1 row in set, 1 warning (0.000 sec)

Controleer de waarschuwing:

SHOW WARNINGS;

Resultaat:

+---------+------+----------------------------------------+
| Level   | Code | Message                                |
+---------+------+----------------------------------------+
| Warning | 1292 | Incorrect datetime value: '2030-65-78' |
+---------+------+----------------------------------------+

Ontbrekend argument

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

SELECT QUARTER();

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 QUARTER('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. Top 5 gratis hulpprogramma's voor databaseontwerp

  2. Importeer Excel-gegevens in PostgreSQL 9.3

  3. Hoe bekijk ik het Explain Plan in Oracle Sql developer?

  4. Selecteer N-de rij uit een tabel in Oracle