4

我的表中有一个包含时间数据类型的列。我需要打印它的价值。这是我正在使用的代码:

Statement st = conn.createStatement();
ResultSet rs = st.executeQuery("SELECT * FROM student");
System.out.print("\t\t"+rs.getTime("Total Time"));

输出是 00:00:00,但我的数据库中的实际值是 24:00:00。我怎样才能获得正确的价值?

4

2 回答 2

1

rs.next()使用前调用getTime()以将光标向前移动到第一行:

Statement st = conn.createStatement();
ResultSet rs = st.executeQuery("SELECT * FROM student");
if (rs.next()) {
  System.out.print("\t\t"+rs.getTime("Total Time"));
}

从文档中:

ResultSet游标最初位于第一行之前;第一次调用该方法next 使第一行成为当前行;第二次调用使第二行成为当前行,依此类推。

于 2012-09-29T21:13:42.060 回答
1

你在打印之前缺少rs.next() 。

要打印 24:00: rs.getTime 将返回格式为 Time 的对象"HH:mm" (00:00 to 23:00)。如果您想(01:00-24:00)使用如下方法格式化时间simpledateformat("kk:mm").format()

Statement st = conn.createStatement();
ResultSet rs = st.executeQuery("SELECT * FROM student");
while(rs.next()) { // if resutset not empty
    System.out.println(new   SimpleDateFormat("kk:mm:ss").format(rs.getTime("time").getTime())); //

}

检查ResultSet API以获取更多信息 :)

于 2012-09-29T21:14:11.687 回答