sql >> Database >  >> RDS >> MariaDB

Hoe SUBTIME() werkt in MariaDB

In MariaDB, SUBTIME() is een ingebouwde datum- en tijdfunctie die een bedrag aftrekt van een tijd- of datetime-expressie.

Hiermee kunt u een tijd- of datetime-uitdrukking wijzigen door die uitdrukking door te geven, evenals een tijduitdrukking om van die uitdrukking af te trekken. U kunt een negatief bedrag doorgeven als u moet toevoegen naar de tijduitdrukking.

Syntaxis

De syntaxis gaat als volgt:

SUBTIME(expr1,expr2)

Waar expr1 is een tijd- of datetime-expressie, en expr2 is een tijduitdrukking.

Voorbeeld

Hier is een voorbeeld:

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

Resultaat:

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

Datetime-expressies

Het eerste argument kan ook een datetime-expressie zijn:

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

Resultaat:

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

In dit geval werd er voldoende tijd afgetrokken om de datum terug te brengen naar de vorige dag en maand.

Tijduitdrukkingen in een lossere indeling

MariaDB maakt het toewijzen van tijden in lossere formaten mogelijk, zoals het laten vallen van voorloopnullen en het geven van een waarde voor de dag.

Daarom kunnen we dit doen:

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

Resultaat:

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

Negatieve intervallen

Het verstrekken van een negatief interval voor het daggedeelte voegt toe dat komt neer op de tijd/datumtijd.

Voorbeeld:

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

Resultaat:

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

Nullargumenten

Als een argument null is , het resultaat is null :

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

Resultaat:

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

Ontbrekend argument

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

SELECT SUBTIME();

Resultaat:

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

  1. Installeer Innotop om de prestaties van de MySQL-server te controleren

  2. Zet postgres-datumweergave om in ISO 8601-tekenreeks

  3. Vooraf gebouwde Oracle-database voor leren en testen met Oracle Developer VM

  4. Psycopg2 verbruikt geheugen bij grote selectiequery's