2

在 MySQL 中,我试图获取两个时间戳值之间的差异并将结果存储在时间列中。但有时结果以 'hhh:mm:ss' 格式出现。尝试使用 Result.getTime() 在 Java 中访问该列时,它会抛出错误,提示“列 x 中时间的格式错误”。

为了更好地理解,请将以下查询的结果存储在时间列中,并尝试在 Java 中访问该值。

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

即使它具有'hhh:mm:ss'格式(没有任何错误),我应该怎么做才能获得结果?

提前致谢。

4

2 回答 2

1

我假设您运行查询并且结果集包含结果

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]);

我认为将两个日期之间的差异表示为日期是没有意义的。只是为了回答你的问题,如果你想创造时间,你可以使用以下

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

但我觉得它毫无意义。

于 2013-02-16T11:29:09.473 回答
1

您不能将两个日期之间的差异表示为另一个日期。例如,如果您将获得 31 天的差异,您不能说它是 1 个月还是 1 个月零 1 天。

您应该创建自己的对象来存储这些数据。

于 2013-02-16T11:14:48.860 回答