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

Requêtes MySQL Discussion :

SEC_TO_TIME calcul faux


Sujet :

Requêtes MySQL

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    329
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 329
    Points : 151
    Points
    151
    Par défaut SEC_TO_TIME calcul faux
    Bonjour,

    Depuis quelques jours j'essaie de faire fonctionner le code ci-dessous, pour calculer des heures.
    Mais il semblerais qu'il compte faux...

    Par exemple : 3600 sec + 3600 sec + 3600 sec = 3h00 le code me renvoie : 01:08:00.000000
    Déja j'ai besoin que des heures et minutes et ensuite pourquoi 1h08 ?

    Merci d'avance de vos retour.

    Cordialement.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $sql = $connexion->query("SELECT SEC_TO_TIME( TIME_TO_SEC(SUM(total_mois))) AS total_time FROM cal_horaire WHERE nom_mois = 'Fevrier'");
    while ($data = $sql->fetch())
    $test = $data['total_time'];
    echo $test;
    $sql->closeCursor();

  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    A priori, c'est davantage un problème de requête que de PHP, donc je renvoie la question à nos collègues de MySQL
    Mais, au hasard, je dirais de convertir AVANT de faire la somme, histoire d'avoir des secondes à additionner :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT SEC_TO_TIME( SUM(TIME_TO_SEC(total_mois))) AS total_time FROM cal_horaire
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    329
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 329
    Points : 151
    Points
    151
    Par défaut
    Je m'auto corrige...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    // ok fonctionne avec heure
    $sql = $connexion->query("SELECT SEC_TO_TIME(SUM(TIME_TO_SEC(total_mois))) AS total_time FROM cal_horaire 
    WHERE nom_mois = 'Fevrier'");
    while ($data = $sql->fetch())
    $test = $data['total_time'];
    echo $test;
    $sql->closeCursor();
    La réponse était déja sur le forum...

  4. #4
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 388
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 388
    Points : 19 120
    Points
    19 120
    Par défaut
    Salut à tous.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    --------------
    set session time_zone = '+00:00'
    --------------
     
    --------------
    SELECT @@time_zone
    --------------
     
    +-------------+
    | @@time_zone |
    +-------------+
    | +00:00      |
    +-------------+
    --------------
    DROP TABLE IF EXISTS `test`
    --------------
     
    --------------
    CREATE TABLE `test`
    ( `id`     integer unsigned NOT NULL auto_increment Primary Key,
      `nbre1`  integer unsigned NOT NULL,
      `nbre2`  time             NOT NULL
    ) ENGINE=InnoDB
      DEFAULT CHARSET=`latin1` COLLATE=`latin1_general_ci`
      ROW_FORMAT=COMPRESSED
    --------------
     
    --------------
    insert into `test` (`nbre1`,`nbre2`) values
      (3600,'01:00:00'),(3600,'01:00:00'),(3600,'01:00:00')
    --------------
     
    --------------
    select * from `test`
    --------------
     
    +----+-------+----------+
    | id | nbre1 | nbre2    |
    +----+-------+----------+
    |  1 |  3600 | 01:00:00 |
    |  2 |  3600 | 01:00:00 |
    |  3 |  3600 | 01:00:00 |
    +----+-------+----------+
    --------------
    select SEC_TO_TIME(SUM(nbre1)) AS total1,
           SEC_TO_TIME(SUM(TIME_TO_SEC(nbre2))) AS total2
      from `test`
    --------------
     
    +----------+----------+
    | total1   | total2   |
    +----------+----------+
    | 03:00:00 | 03:00:00 |
    +----------+----------+
     
    Appuyez sur une touche pour continuer...
    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

Discussions similaires

  1. df, calcul faux ?
    Par Jipété dans le forum Shell et commandes GNU
    Réponses: 32
    Dernier message: 04/03/2016, 13h53
  2. Calcul faux avec doubles
    Par Garamante dans le forum Débuter avec Java
    Réponses: 14
    Dernier message: 14/02/2013, 19h04
  3. calcul avec faux résultat
    Par Marie_7 dans le forum MATLAB
    Réponses: 9
    Dernier message: 27/09/2012, 12h42
  4. calcul entre réels et résultat faux
    Par loukoum82 dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 01/12/2009, 14h40
  5. resultat faux sur calcul de date
    Par debdba dans le forum SQL
    Réponses: 2
    Dernier message: 07/02/2008, 08h47

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