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

Wie SUBTIME() in MariaDB funktioniert

In MariaDB, SUBTIME() ist eine integrierte Datums- und Zeitfunktion, die einen Betrag von einem Zeit- oder Datumszeit-Ausdruck subtrahiert.

Es ermöglicht Ihnen, einen Zeit- oder Datums-Zeit-Ausdruck zu ändern, indem Sie diesen Ausdruck übergeben, sowie einen Zeit-Ausdruck, der von diesem Ausdruck subtrahiert werden soll. Sie können einen negativen Betrag übergeben, wenn Sie ihn hinzufügen müssen zum Zeitausdruck.

Syntax

Die Syntax lautet wie folgt:

SUBTIME(expr1,expr2) 

Wobei expr1 ein Zeit- oder Datumzeitausdruck ist und expr2 ist ein Zeitausdruck.

Beispiel

Hier ist ein Beispiel:

SELECT SUBTIME('10:00:00', '02:30:45'); 

Ergebnis:

+---------------------------------+| UNTERZEIT('10:00:00', '02:30:45') |+------------------------------ ---+| 07:29:15 |+---------------------------------+

Datum/Uhrzeit-Ausdrücke

Das erste Argument kann auch ein datetime-Ausdruck sein:

SELECT SUBTIME('2021-05-01 10:00:00', '22:30:45'); 

Ergebnis:

+--------------------------------------------------+| UNTERZEIT('2021-05-01 10:00:00', '22:30:45') |+-------------------- -------------------+| 2021-04-30 11:29:15 |+-------------------------------------------------- ------+

In diesem Fall wurde genügend Zeit abgezogen, um das Datum auf den vorherigen Tag und Monat zurückzuziehen.

Zeitausdrücke in einem lockereren Format

MariaDB ermöglicht die Zuweisung von Zeiten in lockereren Formaten, z. B. das Weglassen führender Nullen und das Bereitstellen eines Werts für den Tag.

Daher können wir Folgendes tun:

SELECT SUBTIME('2021-05-01 10:00:00', '366 1:1:1.123456'); 

Ergebnis:

+---------------------------------------------- ------+| SUBTIME('2021-05-01 10:00:00', '366 1:1:1.123456') |+------------------------ ----------------------------+| 2020-04-30 08:58:58.876544 |+------------------------------------- --------------+

Negative Intervalle

Bereitstellung eines negativen Intervalls für den Tagesabschnitt addiert das entspricht der Uhrzeit/DatumUhrzeit.

Beispiel:

SELECT SUBTIME('2021-05-01 10:00:00', '-366 1:1:1.123456'); 

Ergebnis:

+---------------------------------------------- -------+| SUBTIME('2021-05-01 10:00:00', '-366 1:1:1.123456') |+----------------------- ------------------------------+| 2022-05-02 11:01:01.123456 |+------------------------------------- ---------------+

Null-Argumente

Wenn irgendein Argument null ist , ist das Ergebnis null :

SELECT 
    SUBTIME('10:00:00', null),
    SUBTIME(null, '02:30:45'),
    SUBTIME(null, null); 

Ergebnis:

+----------------------+----------------- ---------+---------------------+| UNTERZEIT('10:00:00', null) | SUBTIME(null, '02:30:45') | SUBTIME(null, null) |+-----------------------------------+-------------- -------------+---------------------+| NULL | NULL | NULL |+---------------------------+------------------- --------+---------------------+

Fehlendes Argument

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

SELECT SUBTIME(); 

Ergebnis:

FEHLER 1582 (42000):Falsche Parameteranzahl im Aufruf der nativen Funktion 'SUBTIME'