2

我正在运行以下查询以获得两倍的时差

resultSet = statement.executeQuery("SELECT TIMEDIFF('14:03:55.256', '14:02:51.780') AS td");

MySQL 以这种格式给出时差

00:01:03.476

但是两者 resultSet.getTime("td");都 返回resultSet.getObject("td");
00:01:03

根据文档getTime(String string)检索此 ResultSet 对象当前行中指定列的值作为java.sql.TimeJava 编程语言中的对象。

java.sql.Time对应于 SQL TIME 并包含有关小时、分钟、秒和毫秒的信息。那为什么我得到00:01:03而不是00:01:03:476

我基本上想要的是存储00:01:03.476到一个字符串中。有什么解决方法还是我做错了?

4

2 回答 2

3

如果您通过打印结果来验证结果,请注意java.sql.Time.toString()仅返回格式为的字符串hh:mm:ss

你真的应该使用rs.getTimestampwhich 将返回一个java.sql.Timestamp

于 2013-10-10T08:41:46.040 回答
2

尝试这样做:

String s = new SimpleDateFormat("HH.mm.ss.SSS").format(t.getTime());

t你的类型变量在哪里java.sql.Time

希望这能解决你的问题。

于 2013-10-10T09:07:59.370 回答