Ecco alcune opzioni per sottrarre una o più ore da un valore datetime in MariaDB.
Il SUBTIME()
Funzione
Il SUBTIME()
sottrae una determinata quantità di tempo da un valore di ora o data e ora.
Esempio:
SELECT SUBTIME('2021-05-01 10:00:00', '01:00:00');
Risultato:
+--------------------------------------------+ | SUBTIME('2021-05-01 10:00:00', '01:00:00') | +--------------------------------------------+ | 2021-05-01 09:00:00 | +--------------------------------------------+
Puoi anche modificare le altre unità di tempo, come minuti, secondi, ecc.
Il DATE_SUB()
Funzione
Il DATE_SUB()
La funzione consente di sottrarre un certo numero di unità di data/ora da un'espressione di data o ora. Pertanto possiamo utilizzare questa funzione per restituire il valore datetime, meno un certo numero di ore.
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 09:00:00 | +--------------------------------------------------+
Puoi anche utilizzare unità di data e ora composite. Ad esempio, potresti fare ore e minuti tutto in una volta.
Esempio:
SELECT DATE_SUB('2021-05-01 10:00:00', INTERVAL '15:30' HOUR_MINUTE);
Risultato:
+---------------------------------------------------------------+ | DATE_SUB('2021-05-01 10:00:00', INTERVAL '15:30' HOUR_MINUTE) | +---------------------------------------------------------------+ | 2021-04-30 18:30:00 | +---------------------------------------------------------------+
Passando solo la data
Ecco cosa succede se forniamo solo un valore di data:
SELECT DATE_SUB('2021-05-01', INTERVAL 1 HOUR);
Risultato:
+-----------------------------------------+ | DATE_SUB('2021-05-01', INTERVAL 1 HOUR) | +-----------------------------------------+ | 2021-04-30 23:00:00 | +-----------------------------------------+
Presuppone che l'ora inizi alle 00:00:00, quindi HOUR
l'importo viene sottratto da quello.
Ore multiple
Se devi sottrarre più di un'ora, usa quel numero invece di 1
. Tuttavia, l'HOUR
la parola chiave rimane non plurale a prescindere:
SELECT DATE_SUB('2021-05-01 10:00:00', INTERVAL 2 HOUR);
Risultato:
+--------------------------------------------------+ | DATE_SUB('2021-05-01 10:00:00', INTERVAL 2 HOUR) | +--------------------------------------------------+ | 2021-05-01 08:00:00 | +--------------------------------------------------+
L'operatore di sottrazione (-
)
Un altro modo per sottrarre ore da un'espressione datetime consiste nell'utilizzare l'operatore di sottrazione (-
), noto anche come operatore meno.
Esempio:
SELECT '2021-05-01 10:00:00' - INTERVAL 48 HOUR;
Risultato:
+------------------------------------------+ | '2021-05-01 10:00:00' - INTERVAL 48 HOUR | +------------------------------------------+ | 2021-04-29 10:00:00 | +------------------------------------------+
L'operatore di addizione (+
)
In alternativa puoi utilizzare l'operatore di addizione (+
) insieme a un importo negativo.
Esempio:
SELECT '2021-05-01 10:00:00' + INTERVAL -48 HOUR;
Risultato:
+-------------------------------------------+ | '2021-05-01 10:00:00' + INTERVAL -48 HOUR | +-------------------------------------------+ | 2021-04-29 10:00:00 | +-------------------------------------------+
Altri modi per sottrarre le ore
Ecco alcuni altri approcci che potresti utilizzare per sottrarre una o più ore da un valore datetime:
- Il
ADDTIME()
funzione (fornire un importo negativo sottrarrà tale importo dal valore datetime). - Il
SUBDATE()
funzione (questo è un sinonimo diDATE_SUB()
se utilizzato con la stessa sintassi). - Il
DATE_ADD()
funzione (fornire un importo negativo sottrarrà tale importo dal valore datetime). - Il
ADDDATE()
funzione (fornire un importo negativo sottrarrà tale importo dal valore datetime).