IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Informix Discussion :

Conversion date en nombre de mois


Sujet :

Informix

  1. #1
    Membre à l'essai
    Inscrit en
    Mai 2010
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 30
    Points : 22
    Points
    22
    Par défaut Conversion date en nombre de mois
    Bonjour,
    j'aimerais savoir s'il ya une fonction en informix sql qui permet de convertir une date en nombre de mois.
    Exemple: date = dd/mm/yyyy alors
    convertDateToMonths(date) = yyyy x 12 + mm.

    J'ai cherché mais je n'ai rien trouvé vu aussi que informix est assez vieux et moins utilisé.

    Merci pour vos réponses.
    Cordialement.

  2. #2
    Membre habitué
    Homme Profil pro
    Achitecte Informix SGBD et applications - IBM Champion - Data Management - Board of Directors IIUG
    Inscrit en
    Octobre 2010
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Achitecte Informix SGBD et applications - IBM Champion - Data Management - Board of Directors IIUG
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2010
    Messages : 105
    Points : 162
    Points
    162
    Par défaut
    Bonjour,


    1) Informix n'est pas vieux ni moins utilisé, vu que la dernière release 11.70 xC5 date de fin mai, qu'il sort en moyenne trois ou 4 maintenance releases par an depuis 2006 et qu'une major release est dans les starting blocks...
    Informix est effectivement moins mentionné dans la presse, mais certainement pas chez les clients, et la concurrence devrait aussi se faire du souci avec la prochaine major release qui va soirtir dans qq mois...

    2) un nombre de mois par rapport à quoi ou à quand ? Est-ce un intervalle entre 2 dates ou bien un nombre de mois depuis l'an zéro de notre calendrier, comme ton intitué tend à montrer?

    Il existe les fonctions SQL year(date), month(date), day(date) qui portent sur les dates,et qui peuvent t'aider à résoudre ton problème, sinon rien ne t'empêche de créer une procédure stockée ou fonction qui exécute ce que tu décris. C'est très simple et rapide à mettre en oeuvre, et ça simplifiera le code source.
    Sinon, si l'on soustrait une date à une autre date, on obtiendra un nombre de jours que l'on peut ensuite diviser par un algorythme tenant compte des années bissextiles, et en faire une fonction ou procédure stockée.

    Sinon vas chercher dans le Software Repository de l'International Informix User Group, il y a peut être des modèles approchant de ce que tu veux faire.

    c'est ici

  3. #3
    Membre à l'essai
    Inscrit en
    Mai 2010
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 30
    Points : 22
    Points
    22
    Par défaut
    Bonjour,
    merci pour votre réponse et surtout pour les informations concernant informix, j'ignorais complètement.
    Vous venez de corriger une de mes erreurs, je croyais que la différence entre deux dates retournaient une date et donc voilà ce que je faisais:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    d1 = CURRENT
    d2 = date('2011-06-02')
    convertDiffDateToMonth(d1, d2) = year(d1 - d2) * 12 + month(d1 - d2)
    Si je vous ai bien saisi, d1-d2 me retourne le nombre de jours entre ces deux dates.
    Donc je me suis planté grave!!!
    Je suis allé sur le site "International Informix Users", je me suis un peu perdu.
    Pouviez-vous me donner davantage d'indications pour résoudre ce problème.

    Merci.
    Cordialement.

  4. #4
    Membre habitué
    Homme Profil pro
    Achitecte Informix SGBD et applications - IBM Champion - Data Management - Board of Directors IIUG
    Inscrit en
    Octobre 2010
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Achitecte Informix SGBD et applications - IBM Champion - Data Management - Board of Directors IIUG
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2010
    Messages : 105
    Points : 162
    Points
    162
    Par défaut
    Pour avoir le nombre de mois, il suffit "à peu près" de faire
    (d2-d1)/30

    Sur iiug.org, les scripts et codes source sont classés par thème
    l'index global est ici

    plein de bonnes choses à voir
    E.

  5. #5
    Membre du Club
    Inscrit en
    Juillet 2010
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 35
    Points : 47
    Points
    47
    Par défaut
    Bonjour,

    La fonction "built-in" MONTHS_BETWEEN() permet cela très facilement.

    Extrait de la description dans la documentation en ligne:
    ------
    The value returned is a DECIMAL data type, representing the difference between the two arguments, expressed as a DECIMAL value in units based on 31-day months. If the first argument is a point in time later than the second argument, the sign of the returned value is positive. If the first argument is earlier than the second argument, the sign of the returned value is negative
    [...]
    ------

    Référence de la doc en ligne de cette fonction:
    http://publib.boulder.ibm.com/infoce...s_sqs_1537.htm


    Hope this help.

  6. #6
    Membre habitué
    Homme Profil pro
    Achitecte Informix SGBD et applications - IBM Champion - Data Management - Board of Directors IIUG
    Inscrit en
    Octobre 2010
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Achitecte Informix SGBD et applications - IBM Champion - Data Management - Board of Directors IIUG
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2010
    Messages : 105
    Points : 162
    Points
    162
    Par défaut
    Bonjour,


    je te reconseille vivement de te plonger dans cet excellent (comme toujours) article de Jacques 'Mr Datablades' Roy. Une excellente introduction sur la création de fonction 'user defined' qui traite, par chance pour toi, de la manipulation des types de données 'dates' et associés.

    Tu comprendras que si la fonction dont tu rêves n'existe pas, il ne te reste qu'à la construire.

    Il ne parle pas des fonctions user defined construites à partir de java, de C ou 4GL, mais saches également que cela est possible.

    Jacques est l'un des architectes d'Informix, originaire du Québec, et il est très souvent présent aux réunions de l'UGIF (User Group Informix France), qui se tiennent environ 3 ou 4 fois par an, et dont le prochain se tiendra le 3 octobre chez IBM à Bois Colombes.


    Je ferai une annonce en temps voulu sur le village informix

Discussions similaires

  1. [MySQL-4.0] Conversion date en nombre
    Par laura971 dans le forum Requêtes
    Réponses: 1
    Dernier message: 19/03/2013, 13h54
  2. Réponses: 1
    Dernier message: 07/03/2011, 08h32
  3. conversion date vers nombre
    Par hector dans le forum Framework .NET
    Réponses: 1
    Dernier message: 18/01/2007, 11h47
  4. Nombre de mois entre deux dates
    Par boulaxx dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 14/09/2006, 15h22
  5. Nombre de mois entre 2 dates
    Par gripoil dans le forum Langage SQL
    Réponses: 7
    Dernier message: 16/01/2006, 13h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo