我的表中有一个包含时间数据类型的列。我需要打印它的价值。这是我正在使用的代码:
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。我怎样才能获得正确的价值?
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
使第一行成为当前行;第二次调用使第二行成为当前行,依此类推。
你在打印之前缺少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以获取更多信息 :)