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