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

8 modi per aggiungere secondi a un valore DateTime in MariaDB

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:

  1. 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).
  2. L'altra sintassi è la stessa di DATE_ADD() funzione sopra. Quando si utilizza questa sintassi, ADDDATE() è sinonimo di DATE_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.