MariaDB
 sql >> Datenbank >  >> RDS >> MariaDB

Wie QUARTER() in MariaDB funktioniert

In MariaDB QUARTER() ist eine integrierte Datums- und Uhrzeitfunktion, die das Quartal aus einem bestimmten Datumsausdruck zurückgibt.

Es akzeptiert ein Argument, nämlich das Datum, aus dem Sie das Quartal extrahieren möchten.

Es gibt das Quartal als Zahl im Bereich 1 zurück bis 4 . Für Daten mit null Monaten (z. B. 0000-00-00 oder 2025-00-00 ), ist das Ergebnis 0 .

Syntax

Die Syntax lautet wie folgt:

QUARTER(date) 

Wobei date ist der Datumsausdruck, aus dem das Quartal abgerufen werden soll.

Beispiel

Hier ist ein Beispiel:

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

Ergebnis:

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

Datum/Uhrzeit-Werte

Es funktioniert auch mit datetime-Werten:

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

Ergebnis:

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

Null Monate

Daten mit null Monaten ergeben 0 .

Beispiel:

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

Ergebnis:

+-----------------------+| QUARTAL('2030-00-00') |+-----------------------+| 0 |+----------------------+

Numerische Daten

Es ist auch möglich, Datumsangaben als Zahl zu übergeben, sofern es als Datum sinnvoll ist.

Beispiel

SELECT QUARTER(20301125); 

Ergebnis:

+-------------------+| QUARTAL(20301125) |+-------------------+| 4 |+-------------------------------+

Oder sogar das Folgende (das eine zweistellige Jahreszahl verwendet):

SELECT QUARTER(301125); 

Ergebnis:

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

Aber als Date muss es Sinn machen. Folgendes passiert, wenn ich den Tagesteil auf einen ungültigen Tag erhöhe:

SELECT QUARTER(20301135); 

Ergebnis:

+-------------------+| QUARTAL(20301135) |+-------------------+| NULL |+-------------------+1 Zeile im Satz, 1 Warnung (0,000 Sek.)

Wir können die Warnung wie folgt überprüfen:

SHOW WARNINGS; 

Ergebnis:

+---------+------+------------------------------------- ---------+| Ebene | Code | Nachricht |+---------+------+------------------------------ --------+| Warnung | 1292 | Falscher datetime-Wert:'20301135' |+---------+------+----------------------- --------------+

Andere Trennzeichen

Sie können andere Trennzeichen für das Datum verwenden. MariaDB ist ziemlich nachsichtig, wenn es um Trennzeichen bei Datumsangaben geht. Hier sind einige gültige Beispiele:

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

Ergebnis (bei vertikaler Ausgabe):

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

Aktuelles Datum

Wir können NOW() übergeben als datetime-Argument, um das aktuelle Datum zu verwenden:

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

Ergebnis:

+---------------------+----------------+| JETZT() | VIERTEL(JETZT()) |+---------------------+----------------+| 2021-05-18 09:23:27 | 2 |+---------------------+----------------+

Ungültige Argumente

Wenn ein ungültiges Argument übergeben wird, QUARTER() gibt null zurück :

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

Ergebnis:

+-----------------------+| QUARTAL('2030-65-78') |+-----------------------+| NULL |+-----------------------+1 Zeile im Satz, 1 Warnung (0,000 Sek.)

Überprüfen Sie die Warnung:

SHOW WARNINGS; 

Ergebnis:

+---------+------+------------------------------------- -----------+| Ebene | Code | Nachricht |+---------+------+------------------------------ ----------+| Warnung | 1292 | Falscher datetime-Wert:'2030-65-78' |+---------+------+-------------------- --------------------+

Fehlendes Argument

Aufruf von QUARTER() mit der falschen Anzahl von Argumenten oder ohne Übergabe von Argumenten führt zu einem Fehler:

SELECT QUARTER(); 

Ergebnis:

ERROR 1064 (42000):Sie haben einen Fehler in Ihrer SQL-Syntax; Überprüfen Sie das Handbuch, das Ihrer MariaDB-Serverversion entspricht, auf die richtige Syntax, um sie in der Nähe von ')' in Zeile 1 zu verwenden

Und noch ein Beispiel:

SELECT QUARTER('2030-12-10', '2031-12-10'); 

Ergebnis:

ERROR 1064 (42000):Sie haben einen Fehler in Ihrer SQL-Syntax; Überprüfen Sie das Handbuch, das Ihrer MariaDB-Serverversion entspricht, auf die richtige Syntax, um sie in der Nähe von „2031-12-10“)“ in Zeile 1 zu verwenden