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 、最初の行が現在の行になります。2 番目の呼び出しでは、2 番目の行が現在の行になります。

于 2012-09-29T21:13:42.060 に答える
1

印刷する前にrs.next()がありません。

24:00 を出力するには: rs.getTime は、 format の 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 に答える