MariaDB
 sql >> Database >  >> RDS >> MariaDB

Come funziona SUBTIME() in MariaDB

In MariaDB, SUBTIME() è una funzione di data e ora incorporata che sottrae un importo da un'espressione time o datetime.

Ti consente di modificare un'espressione di ora o data e ora passando quell'espressione, nonché un'espressione di ora da sottrarre da tale espressione. Puoi passare un importo negativo se devi aggiungere all'espressione del tempo.

Sintassi

La sintassi è questa:

SUBTIME(expr1,expr2)

Dove expr1 è un'espressione ora o data/ora e expr2 è un'espressione del tempo.

Esempio

Ecco un esempio:

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

Risultato:

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

Espressioni di data e ora

Il primo argomento può anche essere un'espressione datetime:

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

Risultato:

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

In questo caso, è stato sottratto un tempo sufficiente per riportare la data al giorno e al mese precedenti.

Espressioni temporali in un formato più flessibile

MariaDB consente l'assegnazione di tempi in formati più flessibili, come l'eliminazione di zeri iniziali e la fornitura di un valore per il giorno.

Pertanto, possiamo farlo:

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

Risultato:

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

Intervalli negativi

Fornire un intervallo negativo per la porzione di giorno aggiunge tale importo all'ora/dataora.

Esempio:

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

Risultato:

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

Argomenti nulli

Se un argomento è null , il risultato è null :

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

Risultato:

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

Argomento mancante

Chiamando SUBTIME() con il numero errato di argomenti o senza passare alcun argomento genera un errore:

SELECT SUBTIME();

Risultato:

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