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'