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

PHP & Base de données Discussion :

[SQL] Difference entre deux champs DATETIME


Sujet :

PHP & Base de données

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 62
    Points : 34
    Points
    34
    Par défaut [SQL] Difference entre deux champs DATETIME
    Bonjour,

    J'ai deux champs dans ma base sql au format DATETIME.

    Comment afficher la différence des deux en secondes?

    En sachant que DATEDIFF ne s'occupe pas des heures, mais uniquement des jours.
    Et que je suis sur SQL 4.0.27 et ne dispose donc pas de TIMEDIFF

    Merci à vous.

  2. #2
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    tu les récupères en PHP et tu fais la différence en php avec strftime() qui permet de transformer une chaine correspondant a une date en secondes.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 62
    Points : 34
    Points
    34
    Par défaut
    Bon, je sèche un peu sur ce truc tout simple...

    J'ai ceci (je passe les détails de connection à la base):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $date=strtotime($date11);
    $dateenvoi=strtotime($date12);
     
     
    $tempsreel=$dateenvoi-$date;
    echo strftime('%H:%M:%S', $tempsreel);
    J'ai une date (format sql DATETIME) de début ($date) que je transforme en timestamp
    J'ai une date de fin (format sql DATIME) qui est $dateenvoi et que je transforme aussi en timestamp.

    Je fais la différence entre les deux.

    Et j'affiche avec strftime.

    Le problème, c'est que j'ai 5 secondes de différences réelles entre les deux dates, et qu'il m'affiche 01:00:05

    Ah, et je rajouterais que j'aimerais bien aussi avoir les millisecondes...

    Une petite aide?
    Merci

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 62
    Points : 34
    Points
    34
    Par défaut
    Bon, il semble que j'ai un problème..

    J'explique ce que je souhaiterais...

    J'ai une date et heure de début enregistrée dans la base sous format DATETIME
    J'ai une date de fin enregistrée dans la base sous format DATETIME.

    Le format DATETIME ne prend pas les millisecondes, alors que j'en ai besoin...

    Donc première question, comment enregistrer dans la base mes jours, dates et heures avec les millisecondes?

    Et ensuite faire la différence des deux pour obtenir un affichage H:M:S:MS

    Merci

  5. #5
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2005
    Messages
    357
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2005
    Messages : 357
    Points : 537
    Points
    537
    Par défaut
    Salut,
    Je ne pense pas que les formats de temps prennent les millisecondes.
    Sinon pour travailler en secondes avec des timestamp :
    Dans ta requête, utilise
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select unix_timestamp(date1) as d1, unix_timestamp(date2) as d2 from ta_table where cond = qui_va_bien
    Ainsi d1 - d2 te donnera le nombre de secondes. Pour le mettre en format horaire, ça ne devrait pas poser de problème, j'imagine.

Discussions similaires

  1. [MySQL] différence entre deux champs datetime
    Par labib23dz dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 20/06/2013, 15h42
  2. difference entre deux date en sql
    Par thered dans le forum Langage SQL
    Réponses: 9
    Dernier message: 13/06/2009, 23h44
  3. difference de dates entre deux champs
    Par aquafafa dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 25/03/2008, 16h28
  4. [Noobie]Calcul entre deux champs datetime
    Par bigltnt dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 30/07/2007, 10h37
  5. Réponses: 7
    Dernier message: 13/12/2006, 12h57

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