2 votes

MySql - Mauvais format pour l'heure 'hhh:mm:ss' dans la colonne x

Dans MySQL, j'essaie d'obtenir la différence entre deux valeurs de type timestamp et de stocker le résultat dans une colonne de type time. Mais parfois, le résultat est au format 'hhh:mm:ss'. Lorsque j'essaie d'accéder à cette colonne en Java en utilisant Result.getTime(), une erreur se produit indiquant 'Mauvais format de temps dans la colonne x'.

Pour mieux comprendre, stockez le résultat de la requête suivante dans une colonne de type time et essayez d'accéder à cette valeur en Java.

SELECT SEC_TO_TIME(ABS(TIMESTAMPDIFF(SECOND,'2013-01-26 19:03:48','2013-02-15 06:59:36'))) as 'RESULT';

Que dois-je faire pour obtenir le résultat même s'il est au format 'hhh:mm:ss' (sans erreur)?

Merci d'avance.

1voto

Vous ne pouvez pas exprimer la différence entre deux dates sous forme d'une autre date. Par exemple, si vous avez une différence de 31 jours, vous ne pouvez pas dire s'il s'agit de 1 mois ou de 1 mois et 1 jour.

Vous devriez créer votre propre objet pour stocker ces données.

1voto

Fathah Rehman P Points 2509

Je suppose que vous exécutez une requête et que le jeu de résultats contient le résultat

String hourMinSec=resultset.getString("RESULT");
String[]result=hourMinSec.split(":");
int hour=Integer.parseInt(result[0]);
int min=Integer.parseInt(result[1]);
int second=Integer.parseInt(result[2]);

Exprimer la différence entre deux dates en tant que date n'a pas de sens à mon avis. Juste pour répondre à votre question, si vous voulez créer une heure, vous pouvez utiliser ce qui suit

 Time time =new Time(hour, min, second);      

Mais je trouve que c'est sans signification.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X