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

8 façons d'ajouter une heure à une date/heure dans MariaDB

Il existe de nombreuses façons d'effectuer l'arithmétique des dates dans MariaDB. Cela inclut l'ajout ou la soustraction d'un certain nombre d'une partie de date donnée d'une valeur date ou datetime.

Dans cet article, je présente 8 façons d'ajouter une heure à une valeur datetime dans MariaDB.

Le DATE_ADD() Fonction

Le DATE_ADD() La fonction vous permet d'ajouter un montant à une expression date ou datetime. Cela inclut l'ajout de parties de temps, telles que l'heure.

Exemple :

SELECT DATE_ADD('2021-05-01 10:00:00', INTERVAL 1 HOUR);

Résultat :

+--------------------------------------------------+
| DATE_ADD('2021-05-01 10:00:00', INTERVAL 1 HOUR) |
+--------------------------------------------------+
| 2021-05-01 11:00:00                              |
+--------------------------------------------------+

Dans ce cas, j'ai ajouté une heure à l'expression datetime.

Voici ce qui se passe si je ne fournis que la date :

SELECT DATE_ADD('2021-05-01', INTERVAL 1 HOUR);

Résultat :

+-----------------------------------------+
| DATE_ADD('2021-05-01', INTERVAL 1 HOUR) |
+-----------------------------------------+
| 2021-05-01 01:00:00                     |
+-----------------------------------------+

La partie heure est ajoutée au résultat et on suppose que l'heure initiale était 00:00:00 .

Si vous devez ajouter plus d'une heure, utilisez simplement ce nombre au lieu de 1 . Notez que l'HOUR le mot-clé reste non pluriel malgré tout :

SELECT DATE_ADD('2021-05-01 10:00:00', INTERVAL 2 HOUR);

Résultat :

+--------------------------------------------------+
| DATE_ADD('2021-05-01 10:00:00', INTERVAL 2 HOUR) |
+--------------------------------------------------+
| 2021-05-01 12:00:00                              |
+--------------------------------------------------+

Il est également possible d'utiliser une autre unité de date/heure avec le numéro approprié de cette unité. Par conséquent, vous pouvez spécifier un certain nombre de minutes, par exemple 60 ou 120.

Exemple :

SELECT DATE_ADD('2021-05-01 10:00:00', INTERVAL 60 MINUTE);

Résultat :

+-----------------------------------------------------+
| DATE_ADD('2021-05-01 10:00:00', INTERVAL 60 MINUTE) |
+-----------------------------------------------------+
| 2021-05-01 11:00:00                                 |
+-----------------------------------------------------+

Vous pouvez également utiliser une unité de date/heure composite pour ajouter plusieurs unités. Par exemple, si vous souhaitez ajouter 1 heure et 30 minutes, vous pouvez procéder comme suit :

SELECT 
DATE_ADD('2021-05-01 10:00:00', INTERVAL '1:30' HOUR_MINUTE);

Résultat :

+--------------------------------------------------------------+
| DATE_ADD('2021-05-01 10:00:00', INTERVAL '1:30' HOUR_MINUTE) |
+--------------------------------------------------------------+
| 2021-05-01 11:30:00                                          |
+--------------------------------------------------------------+

Voir MariaDB Date and Time Units pour une liste complète des unités de date/heure.

Le ADDDATE() Fonction

Une autre façon d'ajouter une heure à une expression datetime consiste à utiliser le ADDDATE() une fonction. Cette fonction a deux syntaxes :

  1. Une syntaxe vous permet d'ajouter un nombre de jours à une date, ce qui n'est pas ce que nous faisons ici (sauf si nous prévoyons d'ajouter 24 heures).
  2. L'autre syntaxe est la même qu'avec le DATE_ADD() fonction ci-dessus. Lors de l'utilisation de cette syntaxe, ADDDATE() est un synonyme de DATE_ADD() .

Exemple :

SELECT ADDDATE('2021-05-01 10:00:00', INTERVAL 1 HOUR);

Résultat :

+-------------------------------------------------+
| ADDDATE('2021-05-01 10:00:00', INTERVAL 1 HOUR) |
+-------------------------------------------------+
| 2021-05-01 11:00:00                             |
+-------------------------------------------------+

Le DATE_SUB() Fonction

Le DATE_SUB() la fonction vous permet de soustraire un montant à une date. Cependant, si vous fournissez une valeur négative à soustraire, elle finit par être ajoutée à la date.

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 11:00:00                               |
+---------------------------------------------------+

Le SUBDATE() Fonction

Le SUBDATE() la fonction est synonyme de DATE_SUB() lors de l'utilisation de la syntaxe suivante.

Exemple :

SELECT SUBDATE('2021-05-01 10:00:00', INTERVAL -1 HOUR);

Résultat :

+--------------------------------------------------+
| SUBDATE('2021-05-01 10:00:00', INTERVAL -1 HOUR) |
+--------------------------------------------------+
| 2021-05-01 11:00:00                              |
+--------------------------------------------------+

Le + Opérateur

Une autre option consiste à utiliser le + opérateur.

Le + L'opérateur est utilisé pour effectuer l'addition, et nous pouvons l'utiliser sur les dates, ainsi que l'unité de date/heure applicable pour ajouter un certain nombre d'heures à notre date.

Exemple :

SELECT '2021-05-01 10:00:00' + INTERVAL 1 HOUR;

Résultat :

+-----------------------------------------+
| '2021-05-01 10:00:00' + INTERVAL 1 HOUR |
+-----------------------------------------+
| 2021-05-01 11:00:00                     |
+-----------------------------------------+

Le - Opérateur

Le - peut être utilisé pour soustraire un montant d'une date. Mais s'il est utilisé pour soustraire un nombre négatif, le résultat est un montant positif ajouté à la date :

SELECT '2021-05-01 10:00:00' - INTERVAL -1 HOUR;

Résultat :

+------------------------------------------+
| '2021-05-01 10:00:00' - INTERVAL -1 HOUR |
+------------------------------------------+
| 2021-05-01 11:00:00                      |
+------------------------------------------+

Le ADDTIME() Fonction

Vous pouvez utiliser le ADDTIME() fonction pour ajouter un nombre d'heures à une expression datetime.

Exemple :

SELECT ADDTIME('2021-05-01 10:30:45', '01:0:0');

Résultat :

+------------------------------------------+
| ADDTIME('2021-05-01 10:30:45', '01:0:0') |
+------------------------------------------+
| 2021-05-01 11:30:45                      |
+------------------------------------------+

L'un des avantages de cette fonction est que vous pouvez également modifier les autres unités de temps, telles que les minutes, les secondes, etc.

Le SUBTIME() Fonction

Vous pouvez également le changer et utiliser SUBTIME() avec une valeur négative si vous le souhaitez :

SELECT SUBTIME('2021-05-01 10:30:45', '-01:0:0');

Résultat :

+-------------------------------------------+
| SUBTIME('2021-05-01 10:30:45', '-01:0:0') |
+-------------------------------------------+
| 2021-05-01 11:30:45                       |
+-------------------------------------------+

Autres unités de date et d'heure

Les exemples ci-dessus ajoutent un nombre d'heures à la valeur datetime, mais nous pouvons utiliser les mêmes techniques pour ajouter n'importe quelle unité de date/heure. Voir Unités de date et d'heure MariaDB pour une liste complète des unités de date/heure qui peuvent être utilisées avec les fonctions et opérateurs ci-dessus.