Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从结果集获取时间戳_Java_Mysql_Jdbc - Fatal编程技术网

Java 从结果集获取时间戳

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')"); 如何从此结果集中获取时间戳值。如果我做错了什么,请纠正我 注意:我

我正在尝试使用类似java的工具执行SQL查询

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)上查看我的更新答案。。。问题是您没有指向要读取的第一条记录…问题是否已解决或仍然存在。。。