Date du jour sur informix

Bonjour,
je suis dans le domaine credit bancaire, je dois extraire de ma base de donnees les dossiers de credit arrivant a echeance le mois suivant la date d'interrogation de la base. En mettant une date fixe j'obtient un resultat mais je n'arrive pas a la rendre flexible ma requete en y introduisant la date systeme. Voila la requete dans le requeteur INFORMIX:

SELECT agence,numcli,nom,contrat,montant,statut,
dateecheance,restandu,datedebut,datefin
FROM Tabcontrat,Tabclient,Tabecheance,TabSimulation
Where ''jointures''
and month(datefin)=month('datedujour')+1
and year(datefin)=year('datedujour')
and month(dateecheance)=month('datedujour')
and year(dateecheance)=month('datedujour')
Order by contrat

C volontairement que je n'ai pas utilise les noms de champs avec alias. c cette 'datedujour' dont g besoin.
Merci pour votre aide

4 réponses

  1. Bonjour

    Je t'ai déjà répondu hier.
    Si tu n'as pas su utiliser ma réponse, tu aurais au moins pu me le dire.
    0
    1. oui mais je commence a peine a utiliser le forum et ne maitrise pas encore tous les rouages desole. le now() ne fonctionne pas g essaye
      0
    2. and month(datefin)=month(now())+1

      c bien comme ca que je devrai l'utiser?
      0
  2. Oui c'est bien comme ça
    Mais comme je te l'ai fait remarquer hier, c'est absurde : nous sommes en décembre et tu vas essayer de faire and month(datefin)=13, ce qui évidemment ne va jamais marcher.
    0
    1. Modérateur
      Bonjour,

      Ta requête de départ n'est pas la meilleure. Comme le père le fait remarquer, on ne fait généralement pas de +1 sur le mois. Il existe souvent une fonction qui se charge de cela bien mieux, comme add_months.

      Après pour tester qu'une valeur est bien comprise entre 2 bornes, là aussi il y a un opérateur spécialisé : between

      Plus généralement nous pourrions te conseiller de te référer à la doc informix.

      Je ne connais pas ce sgbd mais avec ce que j'ai trouvé :
      today
      add_months
      betwwen

      j'écrirais quelque chose comme :

      where dateecheance between today and add_months(today,1)


      SGDG ;-) car c'est toujours en l'exécutant que l'on valide que la syntaxe est bonne.

      cdlt

              Un étranger, c'est un ami qu'on n'a pas encore rencontré.
      0
      1. Bonjour merci beaucoup pour vos cotre reflexions sur mon besoin. Mais j'ai essaye les solutions proposees qui ne marchent pas. Je vous propose de me donner deaja la requete qui me permettrai de recuperer simplement la date du jour et de l'afficher.
        Cordialement.
        0