Ci sono molti modi per eseguire l'aritmetica della data in MariaDB. Ciò include l'aggiunta o la sottrazione di un certo numero di una data parte da un valore di data o data e ora.
In questo articolo, presento 8 modi per aggiungere un'ora a un valore datetime in MariaDB.
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 l'ora.
Esempio:
SELECT DATE_ADD('2021-05-01 10:00:00', INTERVAL 1 HOUR);
Risultato:
+--------------------------------------------------+ | DATE_ADD('2021-05-01 10:00:00', INTERVAL 1 HOUR) | +--------------------------------------------------+ | 2021-05-01 11:00:00 | +--------------------------------------------------+
In questo caso, ho aggiunto un'ora all'espressione datetime.
Ecco cosa succede se fornisco solo la data:
SELECT DATE_ADD('2021-05-01', INTERVAL 1 HOUR);
Risultato:
+-----------------------------------------+ | DATE_ADD('2021-05-01', INTERVAL 1 HOUR) | +-----------------------------------------+ | 2021-05-01 01:00:00 | +-----------------------------------------+
La parte temporale viene aggiunta al risultato e si presume che l'ora iniziale fosse 00:00:00
.
Se devi aggiungere più di un'ora, usa quel numero invece di 1
. Nota che l'HOUR
la parola chiave rimane non plurale a prescindere:
SELECT DATE_ADD('2021-05-01 10:00:00', INTERVAL 2 HOUR);
Risultato:
+--------------------------------------------------+ | DATE_ADD('2021-05-01 10:00:00', INTERVAL 2 HOUR) | +--------------------------------------------------+ | 2021-05-01 12:00:00 | +--------------------------------------------------+
È anche possibile utilizzare un'altra unità di data/ora con il numero appropriato di tale unità. Pertanto è possibile specificare un certo numero di minuti, ad esempio 60 o 120.
Esempio:
SELECT DATE_ADD('2021-05-01 10:00:00', INTERVAL 60 MINUTE);
Risultato:
+-----------------------------------------------------+ | DATE_ADD('2021-05-01 10:00:00', INTERVAL 60 MINUTE) | +-----------------------------------------------------+ | 2021-05-01 11:00:00 | +-----------------------------------------------------+
Puoi anche utilizzare un'unità di data/ora composita per aggiungere più unità. Ad esempio, se desideri aggiungere 1 ora e 30 minuti, puoi farlo:
SELECT
DATE_ADD('2021-05-01 10:00:00', INTERVAL '1:30' HOUR_MINUTE);
Risultato:
+--------------------------------------------------------------+ | DATE_ADD('2021-05-01 10:00:00', INTERVAL '1:30' HOUR_MINUTE) | +--------------------------------------------------------------+ | 2021-05-01 11:30:00 | +--------------------------------------------------------------+
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 un'ora 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 24 ore).
- 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 1 HOUR);
Risultato:
+-------------------------------------------------+ | ADDDATE('2021-05-01 10:00:00', INTERVAL 1 HOUR) | +-------------------------------------------------+ | 2021-05-01 11:00:00 | +-------------------------------------------------+
Il DATE_SUB()
Funzione
Il DATE_SUB()
la funzione ti consente di sottrarre un importo a una data. Tuttavia, se fornisci un valore negativo da sottrarre, finisce per essere aggiunto alla data.
Esempio:
SELECT DATE_SUB('2021-05-01 10:00:00', INTERVAL -1 HOUR);
Risultato:
+---------------------------------------------------+ | DATE_SUB('2021-05-01 10:00:00', INTERVAL -1 HOUR) | +---------------------------------------------------+ | 2021-05-01 11:00:00 | +---------------------------------------------------+
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 -1 HOUR);
Risultato:
+--------------------------------------------------+ | SUBDATE('2021-05-01 10:00:00', INTERVAL -1 HOUR) | +--------------------------------------------------+ | 2021-05-01 11:00:00 | +--------------------------------------------------+
Il +
Operatore
Un'altra opzione è usare il +
operatore.
Il +
operatore viene utilizzato per eseguire l'aggiunta e possiamo usarlo nelle date, insieme all'unità di data/ora applicabile per aggiungere un certo numero di ore alla nostra data.
Esempio:
SELECT '2021-05-01 10:00:00' + INTERVAL 1 HOUR;
Risultato:
+-----------------------------------------+ | '2021-05-01 10:00:00' + INTERVAL 1 HOUR | +-----------------------------------------+ | 2021-05-01 11:00:00 | +-----------------------------------------+
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 alla data:
SELECT '2021-05-01 10:00:00' - INTERVAL -1 HOUR;
Risultato:
+------------------------------------------+ | '2021-05-01 10:00:00' - INTERVAL -1 HOUR | +------------------------------------------+ | 2021-05-01 11:00:00 | +------------------------------------------+
Il ADDTIME()
Funzione
Puoi usare ADDTIME()
funzione per aggiungere un numero di ore a un'espressione datetime.
Esempio:
SELECT ADDTIME('2021-05-01 10:30:45', '01:0:0');
Risultato:
+------------------------------------------+ | ADDTIME('2021-05-01 10:30:45', '01:0:0') | +------------------------------------------+ | 2021-05-01 11:30:45 | +------------------------------------------+
Un vantaggio di questa funzione è che puoi anche cambiare le altre unità di tempo, come minuti, secondi, ecc.
Il SUBTIME()
Funzione
In alternativa puoi cambiarlo e utilizzare SUBTIME()
con un valore negativo se lo desideri:
SELECT SUBTIME('2021-05-01 10:30:45', '-01:0:0');
Risultato:
+-------------------------------------------+ | SUBTIME('2021-05-01 10:30:45', '-01:0:0') | +-------------------------------------------+ | 2021-05-01 11:30:45 | +-------------------------------------------+
Altre unità di data e ora
Gli esempi precedenti aggiungono un numero di ore 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.