sql >> Databasteknik >  >> RDS >> MariaDB

Hur SUBTIME() fungerar i MariaDB

I MariaDB, SUBTIME() är en inbyggd datum- och tidsfunktion som subtraherar ett belopp från ett uttryck för tid eller datum.

Det låter dig ändra ett uttryck för tid eller datum och tid genom att skicka det uttrycket, såväl som ett tidsuttryck att subtrahera från uttrycket. Du kan skicka ett negativt belopp om du behöver lägga till till tidsuttrycket.

Syntax

Syntaxen ser ut så här:

SUBTIME(expr1,expr2)

Där expr1 är ett tid- eller datetime-uttryck och expr2 är ett tidsuttryck.

Exempel

Här är ett exempel:

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

Resultat:

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

Uttryck för datum och tid

Det första argumentet kan också vara ett datetime-uttryck:

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

Resultat:

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

I det här fallet subtraherades tillräckligt med tid för att dra tillbaka datumet till föregående dag och månad.

Tidsuttryck i ett lösare format

MariaDB tillåter tilldelning av tider i lösare format, som att tappa inledande nollor och ge ett värde för dagen.

Därför kan vi göra detta:

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

Resultat:

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

Negativa intervall

Ange ett negativt intervall för dagdelen som läggs till det beloppet motsvarar tiden/datum och tid.

Exempel:

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

Resultat:

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

Nollargument

Om något argument är null , resultatet är null :

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

Resultat:

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

Argument saknas

Anropar SUBTIME() med fel antal argument, eller utan att skicka några argument resulterar i ett fel:

SELECT SUBTIME();

Resultat:

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

  1. Hur man returnerar dagnumret med ett suffix i MariaDB

  2. Varför returnerar välj SCOPE_IDENTITY() en decimal istället för ett heltal?

  3. Övervaka sidans förväntade livslängd i SQL Server

  4. Oracle Rows to Column Transformation