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

SQL Procédural MySQL Discussion :

Erreur sur l'évaluation d'une durée


Sujet :

SQL Procédural MySQL

  1. #1
    Rédacteur
    Avatar de DarkVader
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    2 131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 131
    Par défaut Erreur sur l'évaluation d'une durée
    Bonjour,
    Voilà qui est probablement basique mais je ne m'explique pas le comportement suivant :
    j'exécute une requete retournant la différence entre la date et heure courante avec un champ timestamp enregistré
    or le résultat ne correspond pas aux valeurs attendu !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT Connection_Deny.DenyDate, Now(), Now()-Connection_Deny.DenyDate
    FROM `Connection_Deny`
    Le résultat

    En colonne 3 : le résultat de la requête
    en 4 le résultat attendu !

    En résumé comment obtenir la différence de 2 datetimes sous forme de secondes ?

  2. #2
    Rédacteur
    Avatar de DarkVader
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    2 131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 131
    Par défaut
    Désolé,
    j'ai finallement trouvé (peu de temps après avoir posé ma question ) .

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT Connection_Deny.DenyDate, Now( ) , timestampdiff(SECOND,Connection_Deny.DenyDate,Now( )) AS DIFF 
    FROM `Connection_Deny`

  3. #3
    Rédacteur
    Avatar de DarkVader
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    2 131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 131
    Par défaut
    Je viens de constater qu'il s'agit d'une fonction MySQL 5.
    Quelle est l'alternative avec les versions précédentes ?

  4. #4
    Membre chevronné Avatar de nounetmasque
    Inscrit en
    Janvier 2003
    Messages
    494
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 494
    Par défaut
    Si ton champ Connection_Deny.DenyDate est de type date, tu peux normalement arriver au même résultat avec les fonction DATEDIFF et DATE_FORMAT.
    Ces deux fonctions sont disponibles depuis MySQL 4.1.1

  5. #5
    Rédacteur
    Avatar de DarkVader
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    2 131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 131
    Par défaut
    Il est de type Timestamp et la valeur par défaut (Current_Timestamp) est attribuée automatiquement à l'ajout d'un nouvel enregistrement.

  6. #6
    Membre chevronné Avatar de nounetmasque
    Inscrit en
    Janvier 2003
    Messages
    494
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 494
    Par défaut
    Et avec l'utilisation de la fonction SEC_TO_TIME pour convertir tes timestamp en date...

  7. #7
    Rédacteur
    Avatar de DarkVader
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    2 131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 131
    Par défaut
    Non,
    avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT Connection_Deny.DenyDate, Now( ) , SEC_TO_TIME(Now()-Connection_Deny.DenyDate) AS DIFF 
    FROM `Connection_Deny`
    on obtient
    DenyDate Now( ) DIFF
    8/10/07 14:30:15 16/10/07 11:06:09 2213:13:14
    8/10/07 14:29:31 16/10/07 11:06:09 2213:14:38
    8/10/07 14:27:53 16/10/07 11:06:09 2213:17:36
    8/10/07 14:25:59 16/10/07 11:06:09 2213:20:50
    8/10/07 14:25:04 16/10/07 11:06:09 2213:21:45
    8/10/07 11:45:41 16/10/07 11:06:09 2221:07:48
    8/10/07 11:45:37 16/10/07 11:06:09 2221:07:52

    désolé pour la mise en forme

  8. #8
    Rédacteur
    Avatar de DarkVader
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    2 131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 131
    Par défaut
    Ce que je ne m'explique pas c'est q'un test d'évaluation concernant des temps d'exécutions de requêtes via un script php avec microtime()
    fourni le même type de décallage soit un résultat très supérieur à la réalité !
    Serait-ce du au serveur OVH ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Erreur sur l'initialize d'une notessession
    Par fafonso dans le forum Général VBA
    Réponses: 16
    Dernier message: 17/11/2006, 11h33
  2. [C#] Erreur sur l'initialize d'une NotesSession
    Par dacamp dans le forum Windows Forms
    Réponses: 3
    Dernier message: 16/11/2006, 13h00
  3. Erreur sur script en attaquant une base mysql
    Par bilou95 dans le forum SQL Procédural
    Réponses: 7
    Dernier message: 09/10/2006, 16h58
  4. Erreur sur l'ouverture d'une fenêtre popup
    Par misa dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 25/11/2005, 16h21
  5. [Pl/pgSQL] Erreur sur l'execution d'une fonction.
    Par Floréal dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 25/09/2005, 01h48

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