Dans base j'ai une date à laquelle je souhaite ajouter un délai (+2ans)

Bonjour,
J’ai créé une base de données dans laquelle j’ai un champ qui correspond à la date (format AAAA-MM-JJ) de signature d’une convention. Cette convention dure 2 ans et je souhaite créer une vue qui ajoute automatiquement 2 ans à cette date. Le but est de déterminer par la suite le temps restant avant la date de fin de cette convention.
J’ai essayé avec la fonction DATE_ADD qui ne semble pas fonctionner sur base :

SELECT DATE_ADD (“Date_DConvention”, INTERVAL 2 YEAR) FROM “T_InfoRefuge”;

J’ai ensuite essayé avec la fonction MOIS.DECALER (trouver sur le forum) mais là encore ça ne fonctionne pas.

SELECT YEAR.DECALER (“Date_DConvention”; 2) FROM T_InfoRefuge;

Si quelqu’un peut m’aider… Merci!

Bonjour ,
Je n’y suis jamais arrivé avec hsqldb embarqué mais bien avec Firebird dans une macro en utilisant le sql .En fait j’utilise une requête de mise à jour comprenant update set ““date”” = DateAdd( year, 1, ““date”” ) mais ça doit marcher avec une requête select de type : select DateAdd( year, 2, ““Date_DConvention””) as ““nouvelledate””
Voici un extrait de ma macro :
strsql6=“update”“compteprev”" set ““date””= DateAdd( year, 1, ““date”” ) where ““saisir”” = TRUE and ““periodicite”” =‘annuel’ and ““numcpte”” = ‘"& refnum &"’"
oRequete = oStatement.executeQuery( strSQL6)
Ici, j’y ai mis des conditions .

Bonjour Aboulafia,

Merci pour la réponse qui me rassure d’un côté.
J’avance sur une autre partie de la BD mais dès que je reviens sur la problématique de la date je reviens vers vous pour vous dire si votre solution a fonctionné pour moi ;).
Bonne journée!

1 Like

Bonjour

  • Nous ne disposons pas, à ce jour, de fonctions SQL permettant directement de calculer à partir d’un champ date.
  • Le principe est donc de décomposer la date en année, mois, jour (fonctions YEAR, MONTH, DAY) puis d’ajouter le nombre à l’élément “décomposé”, puis de reconvertir en date (fonction CAST).
  • Le résultat est sous forme numérique (nombre depuis la date “origine”). On peut utiliser la fonction TO_CHAR pour formater le résultat.

Exemple :

SELECT "IdTable", "Date", TO_CHAR( CAST( YEAR( "Date" ) + 2 || '-' || MONTH( "Date" ) || '-' || DAY( "Date" ) AS "DATE" ), 'DD  MONTH YYYY' ) AS "Date+2ans" FROM "Table" AS "Table"

Pour information, cette page de notre wiki liste les fonctions disponibles avec hsqldb et firebird.

Voir
requeteAjoutDate.odb (33,9 Ko)

Cordialement

Bonjour,

Après avoir laissé ce problème de côté je m’y suis repenchée et avec succès grâce à votre réponse!!!
Merci beaucoup!!!

Bonne journée!