从resultSet中获取时间戳

时间:2012-03-08 12:47:57

标签: java mysql jdbc

我正在尝试使用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)

3 个答案:

答案 0 :(得分:2)

希望下面是你想要的......

while (dummy.next()) {
  System.out.println(rs.getString(1));
}

更新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");
}
相关问题