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