Dans PostgreSQL, nous pouvons utiliser le + opérateur pour ajouter une ou plusieurs heures à une valeur de temps.
Par valeur "time", cela pourrait être un réel time valeur, un timestamp , ou un interval . Nous pouvons également ajouter des heures à une date valeur ou une date et time combinaison.
Exemple
Nous pouvons spécifier des intervalles lors de l'ajout de dates et d'heures. Par exemple, nous pouvons utiliser time ou hours pour ajouter une ou plusieurs heures :
SELECT time '08:35' + interval '1 hour'; Résultat :
09:35:00
Pluriel
Et au pluriel :
SELECT time '08:35' + interval '2 hours'; Résultat :
10:35:00
Horodatages
Et le voici avec un timestamp valeur :
SELECT timestamp '2030-01-20 08:35' + interval '2 hours'; Résultat :
2030-01-20 10:35:00
Intervalles
Nous pouvons également ajouter des heures à un interval :
SELECT interval '23 hours' + interval '2 hours'; Résultat :
25:00:00
Dates
Nous pouvons même ajouter des heures à une date valeur :
SELECT date '2030-01-20' + interval '3 hours'; Résultat :
2030-01-20 03:00:00
Le résultat est un timestamp valeur.
Valeurs de date et d'heure combinées
Nous pouvons également ajouter une date et time valeur ensemble, et ajoutez des heures à cela :
SELECT date '2030-01-20' + time '02:35' + interval '3 hours'; Résultat :
2030-01-20 05:35:00
Spécifié en minutes
Une autre façon de procéder consiste à spécifier le nombre équivalent en minutes :
SELECT time '15:45' + interval '60 minutes'; Résultat :
16:45:00
En faisant cela, nous n'avons pas besoin d'être exactement à l'heure. Par exemple, nous pourrions ajouter plus d'une heure, mais moins de deux :
SELECT time '15:45' + interval '90 minutes'; Résultat :
17:15:00
Valeurs négatives
Il est possible d'effectuer une arithmétique de date avec des valeurs négatives. Si nous utilisons une valeur négative avec le + opérateur, le nombre d'heures spécifié sera soustrait de la date/heure d'entrée. Mais si nous l'utilisons avec le - opérateur, alors il sera ajouté à la date/heure d'entrée.
Exemple :
SELECT time '03:00' - interval '-2 hours'; Résultat :
05:00:00