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

Come sottrarre le ore da un valore DateTime in MariaDB

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 di DATE_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).