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

Firebird Discussion :

Calcul sur date


Sujet :

Firebird

  1. #1
    Membre régulier
    Inscrit en
    Octobre 2004
    Messages
    345
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 345
    Points : 90
    Points
    90
    Par défaut Calcul sur date
    Salut tout le monde;
    je voudrais sommer les factures qui ont plus 1an,celle de 9 mois ,celle 3 mois et celle 1 mois par rapport a une date precise;
    comment puis je faire SVp
    Merci

  2. #2
    Membre expert

    Homme Profil pro
    Consultant spécialité Firebird
    Inscrit en
    Mai 2002
    Messages
    2 342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France

    Informations professionnelles :
    Activité : Consultant spécialité Firebird
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 342
    Points : 3 712
    Points
    3 712
    Par défaut
    avec les fonctions addMonth et addYear dans fbudf pour Firebird avant la 2.1
    et avec les fonctions intégrées DATEADD et DATEDIFF dans Firebird 2.1


    Venez au Rendez-Vous Firebird le 12 juillet à Amiens :
    http://www.developpez.net/forums/sho...d.php?t=325113
    Philippe Makowski
    IBPhoenix - Firebird
    Membre de l'April

  3. #3
    Membre régulier
    Inscrit en
    Octobre 2004
    Messages
    345
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 345
    Points : 90
    Points
    90
    Par défaut
    j'utilise interbase 6.0 et laplupart de mes clients l'utilise et je ne voudrais pas migrer vers firebird cause des messages d'ambiguité .
    j ai fait cette requete :
    select compte,
    (select (sum(debit)-sum(credit)) from mouv M1 where
    (M1.compte=M.compte)and
    (datemvt+30 > '12/31/2006')) Un_mois
    ,(select (sum(debit)-sum(credit)) from mouv M1 where
    (M1.compte=M.compte)and
    (datemvt+90 > '12/31/2006')) Trois_mois
    ,(select (sum(debit)-sum(credit)) from mouv M1 where
    (M1.compte=M.compte)and
    (datemvt+180 > '12/31/2006')) Six_mois
    ,(select (sum(debit)-sum(credit)) from mouv M1 where
    (M1.compte=M.compte)and
    (datemvt+270 > '12/31/2006')) Neuf_mois,
    (select (sum(debit)-sum(credit)) from mouv M1 where
    (M1.compte=M.compte)and
    (datemvt+365 > '12/31/2006')) Un_An
    from mouv M
    where
    (compte between '0' and '9999999999')
    and ((categorie='C')or(categorie='F'))
    and (datemvt between '01/01/2006' and '12/31/2006')
    and (M.lettrage is null)
    group by compte
    order by compte

  4. #4
    Membre expert

    Homme Profil pro
    Consultant spécialité Firebird
    Inscrit en
    Mai 2002
    Messages
    2 342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France

    Informations professionnelles :
    Activité : Consultant spécialité Firebird
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 342
    Points : 3 712
    Points
    3 712
    Par défaut
    et bien tu as tord
    si tu veux continuer à utiliser un produit buggué et qui te permet de faire des requêtes avec des résultats non prédictibles et donc potentiellement faux, c'est ton problème
    ceci dit ces udf devraient passer avec IB6
    mais IB6, moi je ne veux plus en entendre parler

    et j'ajouterai que ta requête ne tient pas compte des mois de 31 et 28 et 29 jours et des années bissextiles .....
    Philippe Makowski
    IBPhoenix - Firebird
    Membre de l'April

  5. #5
    Membre régulier
    Inscrit en
    Octobre 2004
    Messages
    345
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 345
    Points : 90
    Points
    90
    Par défaut
    moi aussi j'aurais preferer ne plus entendre parler d ib6 j'en ai bien galerer avec lui mais le comble c 'est que le programme a plus de 176 procedure et je te dis pas .
    mais je crois que je vais m y mettre
    Merci du conseil

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 19
    Points : 22
    Points
    22
    Par défaut
    Citation Envoyé par makowski
    avec les fonctions addMonth et addYear dans fbudf pour Firebird avant la 2.1
    et avec les fonctions intégrées DATEADD et DATEDIFF dans Firebird 2.1


    Venez au Rendez-Vous Firebird le 12 juillet à Amiens :
    http://www.developpez.net/forums/sho...d.php?t=325113

    Je possede firebird 1.5 et ni addYear ni DATEADD ne sont apparemment disonible.

    Comment ajouter ar exemple un an a un champs de ma requete pour une clause between ?!

    Exemple : AND DATE_INTERVENTION BETWEEN CON_DATE_CONTRAT AND ADDYEAR( CON_DATE_CONTRAT )

    Merci, P@sNox

  7. #7
    Membre expert

    Homme Profil pro
    Consultant spécialité Firebird
    Inscrit en
    Mai 2002
    Messages
    2 342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France

    Informations professionnelles :
    Activité : Consultant spécialité Firebird
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 342
    Points : 3 712
    Points
    3 712
    Par défaut
    il faut d'abord pour chaque base ou cela est nécessaire déclarer la fonction addyear
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    declare external function addYear
    timestamp, int
    returns timestamp
    entry_point 'addYear' module_name 'fbudf';
    Philippe Makowski
    IBPhoenix - Firebird
    Membre de l'April

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 19
    Points : 22
    Points
    22
    Par défaut
    Merci, ca marche impec maintenant

    P@sNox,

  9. #9
    Membre actif
    Avatar de adaneels
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2006
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet MOA

    Informations forums :
    Inscription : Août 2006
    Messages : 236
    Points : 210
    Points
    210
    Par défaut
    Nota béné si un visiteur passe comme moi sur ce thread par hasard :

    Maintenant, avec la version 2.1 de Firebird, il est possible d'avoir la liste des enregistrement des N des jours (mois, années, etc.) en faisant ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select *
    from ABONNES
    where datediff(day,DATE_INSCRIPTION, current_date) < 5
    Cette requête sort tous les enregistrements de la table ABONNES qui se sont abonnés dans les 5 derniers jours (ou, en traduction litérale : "dont la différence entre la date d'inscription et la date actuelle est inférieure à 5 jours").
    DATE_INSCRIPTION étant un champ date.

    Pour plus d'infos sur les manipulations de dates, je vous conseille d'aller sur :
    - les petits papiers SQLPro
    - MSDN : fonction datediff en Transact-SQL (pour SQL Server mais peut aider sur la syntaxe)

    Ca fait plus d'une heure que je cherche la réponse, j'espère que ça fera gagner du temps à d'autres

    Arnaud DANEELS
    --
    Arnaud DANEELS

Discussions similaires

  1. [ WinDev ] Calcul sur date dans SQL
    Par Tchupacabra dans le forum Langage SQL
    Réponses: 8
    Dernier message: 28/02/2006, 12h12
  2. Calcul sur date dans SQL
    Par Tchupacabra dans le forum WinDev
    Réponses: 4
    Dernier message: 27/02/2006, 19h23
  3. [débutant] calcul sur date
    Par Regis.C dans le forum Collection et Stream
    Réponses: 9
    Dernier message: 04/01/2005, 10h51
  4. Resutlat de calcul sur date formaté
    Par neness dans le forum SQL
    Réponses: 6
    Dernier message: 16/06/2004, 15h34
  5. Calcul sur date
    Par Thomad dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 17/09/2003, 08h55

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