Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
Pages : 1
#1 21/12/2016 10:41:18
- Mlan2
- Membre
Erreur Opération sur date
Bonjour,
Je bute sur un problème simple se résumant à une opération d'addition d'un nombre de jour sur une date.
Ci-dessous, un extrait du code afin d'illustrer le problème rencontré.
Nbr_Jour INTEGER; -- Variable de nombre de jours.
Date_Def TIMESTAMP; -- Date debut par defaut.
Nbr_Jour := TO_NUMBER (TO_CHAR (NOW(), 'ID'), '99') - 1;
-- Resultat aujourd'hui 21/12/2016 : 2.
Date_Def := Now ();
--Date_Def := Date_Def - integer '1';
--Date_Def := Date_Def - integer TO_CHAR (Nbr_Jour, '99');
Date_Def := Date_Def - Nbr_Jour;
Ci-dessous, le message d'erreur obtenu
En commentaire, dans l'exemple du code, les essais déjà réalisés, générant le même code erreur.
Erreur PostgreSQL : 42883 Message : l'opérateur n'existe pas : timestamp without time zone - integer
Comment, simplement, résoudre ce problème simple (de base) ?
D'avance merci de votre retour.
Hors ligne
#2 21/12/2016 10:46:23
- gleu
- Administrateur
Re : Erreur Opération sur date
On ne soustrait pas un entier à une date. Comment PostgreSQL Peut-il savoir à quoi correspond ce nombre ? est-ce un nombre de jours, de mois, d'années ?
Par contre, on peut soustraire un intervalle à une date : now() - interval '1 day' par exemple.
Ce qui donnerait pour votre code :
Date_Def := now() - (Nbr_Jour||' days')::interval
Guillaume.
Hors ligne
#3 22/12/2016 19:21:45
- Mlan2
- Membre
Re : Erreur Opération sur date
Merci de la réponse
Hors ligne
Pages : 1