Java 从结果集获取时间戳
我正在尝试使用类似java的工具执行SQL查询Java 从结果集获取时间戳,java,mysql,jdbc,Java,Mysql,Jdbc,我正在尝试使用类似java的工具执行SQL查询 Statement st = UserDBConn.createStatement(); ResultSet dummy = st.executeQuery("select unix_timestamp('2012-03-07 00:00:00')"); 如何从此结果集中获取时间戳值。如果我做错了什么,请纠正我 注意:我
Statement st = UserDBConn.createStatement();
ResultSet dummy = st.executeQuery("select unix_timestamp('2012-03-07 00:00:00')");
如何从此结果集中获取时间戳值。如果我做错了什么,请纠正我
注意:我在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)
希望下面是你想要的
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");
您将得到您想要的…如果您所要求的只是如何从resultset获取时间戳,那么您可以使用resultset的getTimestamp方法。您可以使用“unix_timestamp”作为列标签,但如果不将查询更改为类似st.executeQuery的内容(“选择unix_timestamp('2012-03-07 00:00:00')作为时间”);并使用“theTime”作为列标签
while (dummy.next()) {
System.out.println(rs.getString(1));
}
dummy.getTimestamp("columnLabel");
我会这样做:将别名设置为我的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");
}
我认为您的最后一行应该是
Timestamp ts=dummy.getTimestamp(“ts”)
正如您所说的作为时间戳的或作为时间戳的应该是作为ts的但是我在我的query@Fahim帕克,谢谢……编辑。@vignesh,将ts
更改为myTime
然后……您得到了什么错误??结果集开始前是否有错误???您期望的输出是什么??java.sql.SQLException:在com.mysql.jdbc.ResultSet.checkRowPos(ResultSet.java:3628)的com.mysql.jdbc.ResultSet.getString(ResultSet.java:1767)的com.mysql.jdbc.ResultSet.gettimestampineral(ResultSet.java:3792)的com.mysql.jdbc.ResultSet.getTimestamp(ResultSet.java:1905)的结果集开始之前在DBCount.main(DBCount.java:31)的com.mysql.jdbc.ResultSet.getTimestamp(ResultSet.java:1919)上查看我的更新答案。。。问题是您没有指向要读取的第一条记录…问题是否已解决或仍然存在。。。