我正在尝试使用java执行SQL查询
Statement st = UserDBConn.createStatement();
ResultSet dummy = st.executeQuery("select unix_timestamp('2012-03-07 00:00:00')");
如何从此resultSet获取timeStamp值。如果我做错了,请纠正我。
注意:我在mysql中尝试了相同的查询,它给出了1331058600 。
感谢。我试过了
**ResultSet result = st.executeQuery("select unix_timestamp('2012-03-07 00:00:00') as theTime");
Timestamp time = result.getTimestamp("theTime");**
抛出“开始结果集”。可能是错误。
例外如下
java.sql.SQLException: Before start of result set at com.mysql.jdbc.ResultSet.checkRowPos(ResultSet.java:3628) at com.mysql.jdbc.ResultSet.getString(ResultSet.java:1767) at com.mysql.jdbc.ResultSet.getTimestampInternal(ResultSet.java:3792) at com.mysql.jdbc.ResultSet.getTimestamp(ResultSet.java:1905) at com.mysql.jdbc.ResultSet.getTimestamp(ResultSet.java:1919) at DBCount.main(DBCount.java:31)
答案 0 :(得分:2)
希望下面是你想要的......
while (dummy.next()) {
System.out.println(rs.getString(1));
}
将您的查询更改为以下内容。
ResultSet result = st.executeQuery("select unix_timestamp('2012-03-07 00:00:00') as theTime");
result.next();
Timestamp time = result.getTimestamp("theTime");
你会得到你想要的......
答案 1 :(得分:0)
如果您要问的是如何从结果集中获取时间戳,则使用结果集的getTimestamp方法。您可以使用“unix_timestamp”作为列标签但是如果不将您的查询更改为类似st.executeQuery(“选择unix_timestamp('2012-03-07 00:00:00')作为时间”);并使用“theTime”作为列标签
dummy.getTimestamp("columnLabel");
答案 2 :(得分:0)
我会这样做:为我的select设置一个别名,并使用ResultSet.getTimestamp()
方法来检索时间戳。
Statement st = UserDBConn.createStatement();
ResultSet dummy = st.executeQuery("select unix_timestamp('2012-03-07 00:00:00') as ts");
while (dummy.hasNext()) {
Timestamp ts = dummy.getTimestamp("ts");
}