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 :

error 1292 (22007) de temps en temps


Sujet :

Langage SQL

  1. #1
    Candidat au Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Janvier 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2014
    Messages : 16
    Points : 4
    Points
    4
    Par défaut error 1292 (22007) de temps en temps
    Bonjour à tous.

    Voilà le petit soucis que j'ai quand je veux mettre à jour un contenu d'une cellule d'une base SQL.

    La base en elle-même :
    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
     
    CREATE TABLE  bdd_anl.Nageur (
    id INT( 3 ) NOT NULL,
    nom VARCHAR( 20 ) NOT NULL ,
    prenom VARCHAR( 20 ) NOT NULL ,
    sexe CHAR(1) NOT NULL ,
    age INT(2) NOT NULL ,
    nage VARCHAR(10) NOT NULL ,
    heure_depart TIME NOT NULL,
    temps TIME NOT NULL,
    distance INT(5) ,
    vitesse FLOAT(4, 2) ,
    actif BOOL NOT NULL ,
    ligne INT(1) ,
    bonnet INT(1) ,
    PRIMARY KEY ( id )
    ) ENGINE = MYISAM;


    Donc voilà, après avoir mis l'heure de départ avec un programme en Java, je dois mettre à jour la cellule "temps" en faisant l'opération du temps actuel moins l'heure de départ. La commande ci-dessous résume bien tout.

    Le soucis est que la majorité du temps, il y a cette erreur qui se produit et que j'aimerai bien écarter. La valeur '88' correspond à l'intervalle de temps du temps de départ et le moment où j'effectue la requête SQL :

    mysql> update Nageur set temps = current_time()-heure_depart where id='1';
    ERROR 1292 (22007): Incorrect time value: '88' for column 'temps' at row 1



    et de temps à autre la requête, tout fonctionne comme il faut :

    mysql> update Nageur set temps = current_time()-heure_depart where id='1';
    Query OK, 1 row affected <0.00 sec>
    Rows mached: 1 Changer: 1 Warning: 0

    Je ne sais pas d'où ça peut venir et j'ai bien entendu fait des recherches sur cette erreur sans trouver de solution pour mon cas.

    Avez-vous des idées?

    Merci beaucoup et bonne journée

  2. #2
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    2 950
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 2 950
    Points : 5 849
    Points
    5 849
    Par défaut
    Utilisez TIMEDIFF pour obtenir un TIME :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    mysql> select current_time - cast('12:56:40' as time), timediff(current_time,cast('12:56:40' as time));
    +-----------------------------------------+-------------------------------------------------+
    | current_time - cast('12:56:40' as time) | timediff(current_time,cast('12:56:40' as time)) |
    +-----------------------------------------+-------------------------------------------------+
    |                                   15909 | 01:19:09                                        |
    +-----------------------------------------+-------------------------------------------------+
    1 row in set (0.01 sec)
     
    mysql>

  3. #3
    Candidat au Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Janvier 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2014
    Messages : 16
    Points : 4
    Points
    4
    Par défaut
    Bonjour.

    Je viens d'essayer d'adapter votre commande à mon besoin de cette façon :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Update nageur set temps = timediff(current_time,cast('heure_depart' AS time)) where id='1';
    Sauf que j'ai une variation de l'erreur :
    Error 1292 (22007): Truncated incorrect time value :'heure_depart'

    Le but ici est d'insérer la différence de temps entre tout de suite et heure_depart dans la case temps sous la forme xxxx

    Désolé de ne pas être expert dans le domaine

  4. #4
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    Bonjour,

    supprimez les quotes autour du nom de colonne. D'ailleurs, le transtypage est inutile, le type est déjà le bon :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    UPDATE nageur 
       SET temps = timediff(current_time,heure_depart) 
    WHERE id='1';
    Notez tout de même que le type TIME n'a pas pour vocation de stocker une durée, mais une heure (d'où votre erreur initiale quand vous lui spécifiez 88 secondes)...

  5. #5
    Candidat au Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Janvier 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2014
    Messages : 16
    Points : 4
    Points
    4
    Par défaut
    Je ne suis pas un codeur professionnel c'est juste pour un projet perso et je galère pas mal à reprendre les bonnes habitudes.

    En tout cas la solution fonctionne à merveille, merci à vous tous pour votre aide et votre temps.

    Bonne soirée.

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

Discussions similaires

  1. [Ralentissements] ça ralentit de temps en temps
    Par Commodore dans le forum Ordinateurs
    Réponses: 12
    Dernier message: 09/06/2008, 17h37
  2. "Unable to connect to any hosts" de temps en temps
    Par Jarod_ dans le forum Requêtes
    Réponses: 2
    Dernier message: 26/11/2007, 19h20
  3. Réponses: 0
    Dernier message: 23/11/2007, 15h45
  4. [Temps] Calendrier temps Unix?
    Par pigeonfurtif dans le forum Administration système
    Réponses: 3
    Dernier message: 26/06/2007, 09h17

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