Voici quelques options pour soustraire une ou plusieurs heures d'une valeur datetime dans MariaDB.
Le SUBTIME() Fonction
Le SUBTIME() soustrait une durée donnée d'une valeur d'heure ou de date/heure.
Exemple :
SELECT SUBTIME('2021-05-01 10:00:00', '01:00:00'); Résultat :
+--------------------------------------------+
| SUBTIME('2021-05-01 10:00:00', '01:00:00') |
+--------------------------------------------+
| 2021-05-01 09:00:00 |
+--------------------------------------------+ Vous pouvez également modifier les autres unités de temps, telles que les minutes, les secondes, etc.
Le DATE_SUB() Fonction
Le DATE_SUB() permet de soustraire un certain nombre d'unités date/heure d'une expression date ou datetime. Par conséquent, nous pouvons utiliser cette fonction pour renvoyer la valeur datetime, moins un certain nombre d'heures.
Exemple :
SELECT DATE_SUB('2021-05-01 10:00:00', INTERVAL 1 HOUR); Résultat :
+--------------------------------------------------+
| DATE_SUB('2021-05-01 10:00:00', INTERVAL 1 HOUR) |
+--------------------------------------------------+
| 2021-05-01 09:00:00 |
+--------------------------------------------------+ Vous pouvez également utiliser des unités de date et d'heure composites. Par exemple, vous pourriez faire des heures et des minutes en une seule fois.
Exemple :
SELECT DATE_SUB('2021-05-01 10:00:00', INTERVAL '15:30' HOUR_MINUTE); Résultat :
+---------------------------------------------------------------+
| DATE_SUB('2021-05-01 10:00:00', INTERVAL '15:30' HOUR_MINUTE) |
+---------------------------------------------------------------+
| 2021-04-30 18:30:00 |
+---------------------------------------------------------------+ Passer juste la date
Voici ce qui se passe si nous ne fournissons qu'une valeur de date :
SELECT DATE_SUB('2021-05-01', INTERVAL 1 HOUR); Résultat :
+-----------------------------------------+
| DATE_SUB('2021-05-01', INTERVAL 1 HOUR) |
+-----------------------------------------+
| 2021-04-30 23:00:00 |
+-----------------------------------------+
Il suppose que l'heure commence à 00:00:00, et donc le HOUR le montant en est soustrait.
Plusieurs heures
Si vous devez soustraire plus d'une heure, utilisez simplement ce nombre au lieu de 1 . Cependant, l'HOUR le mot-clé reste non pluriel malgré tout :
SELECT DATE_SUB('2021-05-01 10:00:00', INTERVAL 2 HOUR); Résultat :
+--------------------------------------------------+
| DATE_SUB('2021-05-01 10:00:00', INTERVAL 2 HOUR) |
+--------------------------------------------------+
| 2021-05-01 08:00:00 |
+--------------------------------------------------+ L'opérateur de soustraction (- )
Une autre façon de soustraire des heures d'une expression datetime consiste à utiliser l'opérateur de soustraction (- ), également connu sous le nom d'opérateur moins.
Exemple :
SELECT '2021-05-01 10:00:00' - INTERVAL 48 HOUR; Résultat :
+------------------------------------------+ | '2021-05-01 10:00:00' - INTERVAL 48 HOUR | +------------------------------------------+ | 2021-04-29 10:00:00 | +------------------------------------------+
L'opérateur d'addition (+ )
Vous pouvez également utiliser l'opérateur d'addition (+ ) avec un montant négatif.
Exemple :
SELECT '2021-05-01 10:00:00' + INTERVAL -48 HOUR; Résultat :
+-------------------------------------------+ | '2021-05-01 10:00:00' + INTERVAL -48 HOUR | +-------------------------------------------+ | 2021-04-29 10:00:00 | +-------------------------------------------+
Autres façons de soustraire des heures
Voici quelques autres approches que vous pouvez utiliser pour soustraire une ou plusieurs heures d'une valeur datetime :
- Le
ADDTIME()fonction (fournir un montant négatif soustraira ce montant de la valeur datetime). - Le
SUBDATE()fonction (c'est un synonyme deDATE_SUB()lorsqu'il est utilisé avec la même syntaxe). - Le
DATE_ADD()fonction (fournir un montant négatif soustraira ce montant de la valeur datetime). - Le
ADDDATE()fonction (fournir un montant négatif soustraira ce montant de la valeur datetime).