Se devi aggiungere uno o più secondi a un valore datetime in MariaDB, ecco 8 opzioni da considerare.
Il DATE_ADD()
Funzione
Il DATE_ADD()
la funzione consente di aggiungere un importo a un'espressione di data o ora. Ciò include l'aggiunta di parti di tempo, come ore, minuti, secondi, ecc.
Esempio:
SELECT DATE_ADD('2021-05-01 10:00:00', INTERVAL 35 SECOND);
Risultato:
+-----------------------------------------------------+ | DATE_ADD('2021-05-01 10:00:00', INTERVAL 35 SECOND) | +-----------------------------------------------------+ | 2021-05-01 10:00:35 | +-----------------------------------------------------+
In questo caso, ho aggiunto 35 secondi all'espressione datetime. Nota che il SECOND
la parola chiave rimane non plurale indipendentemente dal fatto che io aggiunga un secondo o più.
Ecco cosa succede se fornisco solo la data:
SELECT DATE_ADD('2021-05-01', INTERVAL 35 SECOND);
Risultato:
+--------------------------------------------+ | DATE_ADD('2021-05-01', INTERVAL 35 SECOND) | +--------------------------------------------+ | 2021-05-01 00:00:35 | +--------------------------------------------+
La parte temporale viene aggiunta al risultato e si presume che l'ora iniziale fosse 00:00:00
.
Quando aggiungiamo 60 secondi, possiamo in alternativa usare il MINUTE
parola chiave se preferiamo:
SELECT DATE_ADD('2021-05-01 10:00:00', INTERVAL 1 MINUTE);
Risultato:
+----------------------------------------------------+ | DATE_ADD('2021-05-01 10:00:00', INTERVAL 1 MINUTE) | +----------------------------------------------------+ | 2021-05-01 10:01:00 | +----------------------------------------------------+
Questa tecnica ovviamente funziona con 120 secondi, 180 e così via. Basta utilizzare il numero di minuti applicabile.
Puoi anche utilizzare un'unità di data/ora composita per aggiungere più unità. Ad esempio, se desideri aggiungere 1 minuto e 30 secondi, puoi farlo:
SELECT
DATE_ADD('2021-05-01 10:00:00', INTERVAL '1:30' MINUTE_SECOND);
Risultato:
+----------------------------------------------------------------+ | DATE_ADD('2021-05-01 10:00:00', INTERVAL '1:30' MINUTE_SECOND) | +----------------------------------------------------------------+ | 2021-05-01 10:01:30 | +----------------------------------------------------------------+
Vedere Unità di data e ora di MariaDB per un elenco completo delle unità di data/ora.
Il ADDDATE()
Funzione
Un altro modo per aggiungere secondi a un'espressione datetime consiste nell'usare ADDDATE()
funzione. Questa funzione ha due sintassi:
- Una sintassi ti consente di aggiungere un numero di giorni a una data, che non è ciò che stiamo facendo qui (a meno che non prevediamo di aggiungere secondi in blocchi di 86.400, ovvero quanti secondi ci sono in un giorno).
- L'altra sintassi è la stessa di
DATE_ADD()
funzione sopra. Quando si utilizza questa sintassi,ADDDATE()
è sinonimo diDATE_ADD()
.
Esempio:
SELECT ADDDATE('2021-05-01 10:00:00', INTERVAL 35 SECOND);
Risultato:
+----------------------------------------------------+ | ADDDATE('2021-05-01 10:00:00', INTERVAL 35 SECOND) | +----------------------------------------------------+ | 2021-05-01 10:00:35 | +----------------------------------------------------+
Il DATE_SUB()
Funzione
Il DATE_SUB()
la funzione ti consente di sottrarre un importo in un'espressione data/ora. Tuttavia, se fornisci un valore negativo da sottrarre, finisce per essere aggiunto alla data/ora.
Esempio:
SELECT DATE_SUB('2021-05-01 10:00:00', INTERVAL -35 SECOND);
Risultato:
+------------------------------------------------------+ | DATE_SUB('2021-05-01 10:00:00', INTERVAL -35 SECOND) | +------------------------------------------------------+ | 2021-05-01 10:00:35 | +------------------------------------------------------+
Il SUBDATE()
Funzione
Il SUBDATE()
funzione è sinonimo di DATE_SUB()
quando si utilizza la seguente sintassi.
Esempio:
SELECT SUBDATE('2021-05-01 10:00:00', INTERVAL -35 SECOND);
Risultato:
+-----------------------------------------------------+ | SUBDATE('2021-05-01 10:00:00', INTERVAL -35 SECOND) | +-----------------------------------------------------+ | 2021-05-01 10:00:35 | +-----------------------------------------------------+
Il +
Operatore
Un'altra opzione è usare il +
operatore.
Il +
viene utilizzato per eseguire l'addizione e possiamo usarlo sulle date, insieme all'unità di data/ora applicabile per aggiungere un certo numero di secondi alla nostra espressione datetime.
Esempio:
SELECT '2021-05-01 10:00:00' + INTERVAL 35 SECOND;
Risultato:
+--------------------------------------------+ | '2021-05-01 10:00:00' + INTERVAL 35 SECOND | +--------------------------------------------+ | 2021-05-01 10:00:35 | +--------------------------------------------+
Il -
Operatore
Il -
operatore può essere utilizzato per sottrarre un importo da una data. Ma se viene utilizzato per sottrarre un numero negativo, il risultato è un importo positivo che viene aggiunto all'espressione datetime:
SELECT '2021-05-01 10:00:00' - INTERVAL -35 SECOND;
Risultato:
+---------------------------------------------+ | '2021-05-01 10:00:00' - INTERVAL -35 SECOND | +---------------------------------------------+ | 2021-05-01 10:00:35 | +---------------------------------------------+
Il ADDTIME()
Funzione
Puoi usare ADDTIME()
funzione per aggiungere un numero di secondi a un'espressione datetime.
Esempio:
SELECT ADDTIME('2021-05-01 10:00:00', '00:00:30');
Risultato:
+--------------------------------------------+ | ADDTIME('2021-05-01 10:00:00', '00:00:30') | +--------------------------------------------+ | 2021-05-01 10:00:30 | +--------------------------------------------+
Un vantaggio di questa funzione è che puoi anche modificare le altre unità di tempo, come ore, minuti, ecc.
Il SUBTIME()
Funzione
In alternativa puoi cambiarlo e utilizzare SUBTIME()
con un valore negativo se lo desideri:
SELECT SUBTIME('2021-05-01 10:00:00', '-00:00:30');
Risultato:
+---------------------------------------------+ | SUBTIME('2021-05-01 10:00:00', '-00:00:30') | +---------------------------------------------+ | 2021-05-01 10:00:30 | +---------------------------------------------+
Altre unità di data e ora
Gli esempi precedenti aggiungono un numero di secondi al valore datetime, ma possiamo utilizzare le stesse tecniche per aggiungere qualsiasi unità di data/ora. Vedere Unità di data e ora di MariaDB per un elenco completo delle unità di data/ora che possono essere utilizzate con le funzioni e gli operatori di cui sopra.