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'