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

Langage SQL Discussion :

DIfférence entre deux dates


Sujet :

Langage SQL

  1. #1
    Membre habitué
    Inscrit en
    Juin 2009
    Messages
    346
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 346
    Points : 163
    Points
    163
    Par défaut DIfférence entre deux dates
    Bonjour, on m'a déplacé mon topic dans le forum lié à mon SGBD mais celà dit ce n'est pas un problème SGBD mais un problème SQL c'est pourquoi je me permets de le reposter ici (ce n'est pas un affront hein )...

    Je cherche à calculer la différence entre 2 dates:

    DATE_SINISTRE - DATE_ACHAT_VEHICULE

    Ce sont 2 champs de type Date(aaaammjj) et en consultant les autres topics à ce sujet je n'ai pas trouvé mon bonheur...

    Si une âme charitable passe dans le coin.. Merci !

    Eric.

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    861
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 861
    Points : 965
    Points
    965
    Par défaut
    L'un moins l'autre te donnera une valeur, en jour probablement.
    Résultat à multiplier ou diviser selon l'unité de temps désirée.

  3. #3
    Membre habitué
    Inscrit en
    Juin 2009
    Messages
    346
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 346
    Points : 163
    Points
    163
    Par défaut
    Bonjour membre éprouvé,

    lorsque je tape :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT ID_DOSSIER, DATE_EVENEMENT - DATE_ACHAT_VEHICULE
    FROM DOSSIERS.FIC
    Il m'affiche les ID_DOSSIER et la 2è colonne il n'y a que des 00:00 S

    Je me suis demandé si S ne voulait pas dire seconde mais cela n'a pas de sens puisque je confirme que les champs sont bien de même type date(aaaammjj).

    Dans l'attente je vous salue bien bas

    Eric.

  4. #4
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 820
    Points
    17 820
    Par défaut
    Commencez par vérifier vos données :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT
        ID_DOSSIER,
        DATE_EVENEMENT,
        DATE_ACHAT_VEHICULE,
        DATE_EVENEMENT - DATE_ACHAT_VEHICULE as DIFF
    FROM DOSSIERS.FIC

  5. #5
    Membre habitué
    Inscrit en
    Juin 2009
    Messages
    346
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 346
    Points : 163
    Points
    163
    Par défaut
    Bonjour Waldar,

    votre code me donne la même chose, que des 00:00 S dans la colonne DIFF (alors que les autres colonnes sont renseignées)

    Eric.

  6. #6
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 820
    Points
    17 820
    Par défaut
    Oui mais renseignées comment ?
    Je ne sais plus quel SGBD vous utilisez (n'hésitez pas à le répéter à chaque nouveau sujet), peut-être dans le votre il faut utiliser une fonction type date_diff.

  7. #7
    Membre habitué
    Inscrit en
    Juin 2009
    Messages
    346
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 346
    Points : 163
    Points
    163
    Par défaut
    Désolé Waldar, mon SGBD est Hyperfile (il y a un post aussi dans ce forum).

    Les dates sont renseignées comme ceci à l'affichage : 30/05/2009.

    Mais lorsque j'effectue une recherche, je dois taper par exemple : WHERE DATE_EVENEMENT='20090530'

    Ceci doit répondre à vos questions

    Merci d'y prêter attention en tous cas

    Eric.

  8. #8
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 820
    Points
    17 820
    Par défaut
    Oui mais non, c'est votre base de données qui fait une conversion implicite de votre chaîne de caractère en date.

    Une date n'a pas de format hormis le format date qui contient année mois jour heure minute seconde (millisecondes), après vous affichez ce que vous voulez.

  9. #9
    Membre habitué
    Inscrit en
    Juin 2009
    Messages
    346
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 346
    Points : 163
    Points
    163
    Par défaut
    Re,
    vous voulez donc dire que lorsque j'obtiens 00:00 S sur la dernière colonne cela signifie que seules les secondes sont affichées et qu'il faudrait que j'affiche les années, mois et jours plutôt ?

    Et dans ce cas comment faire ?

    Eric.

  10. #10
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 820
    Points
    17 820
    Par défaut
    Peut-être, pas nécessairement. La plupart des SGBD donne un entier en résultat d'une différence de date.
    Apparement hyperfile donne quelque chose d'hybride.

    Je n'ai pas trouvé de documentation online d'Hyperfile, donc je ne peux pas vous aider, il faut regarder les fonctions implémentées dans la documentation papier.

  11. #11
    Membre habitué
    Inscrit en
    Juin 2009
    Messages
    346
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 346
    Points : 163
    Points
    163
    Par défaut
    Information qui peut vout être utile :
    si DATE_EVENEMENT = 28/05/2009
    et DATE_ACHAT_VEHICULE = 04/12/2007
    alors
    DATE_EVENEMENT + DATE_ACHAT_VEHICULE = 2009052820071204
    DATE_EVENEMENT - DATE_ACHAT_VEHICULE = 00:00 S
    DATE_EVENEMENT * DATE_ACHAT_VEHICULE = 0,00
    DATE_EVENEMENT / DATE_ACHAT_VEHICULE = 0,00
    Voilà si ca peut vous aider.

    Eric.

  12. #12
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 802
    Points
    30 802
    Par défaut
    Hyperfile semblant ne pas respecter la norme ANSI au niveau des opérations sur des dates, il n'y a sans doute qu'une personne connaissant les spécifités de ce produit qui pourra vous répondre
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  13. #13
    Membre habitué
    Inscrit en
    Juin 2009
    Messages
    346
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 346
    Points : 163
    Points
    163
    Par défaut
    Hyperfile a l'air d'être vraiment nul... rien ne se passe jamais comme prévu ! Mais même qu'est-ce que c'est que ces logiciels qui sont pas foutus d'avoir une fonction du genre : DATEDIFF... c'est insensé !

  14. #14
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    J'ai tapé "hyperfile fonctions de dates" dans
    J'y ai trouvé cet article qui mentionne qu'on peut utiliser des fonction de Windev dans les requêtes SQL Hyperfile.

    Reste à trouver les bonnes fonctions Windev qui pourront t'aider.

    Bon courage avec ce SGBD pas du tout standard !
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

Discussions similaires

  1. Réponses: 2
    Dernier message: 21/07/2006, 14h04
  2. Nombre de minutes de différence entre deux dates
    Par Oberown dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 05/05/2006, 15h41
  3. Différence entre deux dates
    Par Azharis dans le forum Access
    Réponses: 3
    Dernier message: 11/01/2006, 10h58
  4. Différence entre deux dates
    Par pittzz dans le forum Oracle
    Réponses: 5
    Dernier message: 18/07/2005, 12h24
  5. Comment obtenir la différence entre deux dates ?
    Par jbat dans le forum Langage
    Réponses: 4
    Dernier message: 02/06/2005, 09h34

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