MariaDB
 sql >> Base de données >  >> RDS >> MariaDB

Comment soustraire des heures d'une valeur Datetime dans MariaDB

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