结果集 getDate(1)

ResultSet getDate(1)

如何从 ResultSet return oracle.sql.DATE? 它 return 是 Java 日期,而不是 ORACLE 日期。

我收到一个错误:

Type mismatch: cannot convert from Date to DATE

ResultSetIterator iter;
...
ResultSet rs = iter.getResultSet();
if (rs.next()) {
    date = rs.getDate(1);
}

我的查询:

SELECT MIN(date_created) FROM tbl_user group by date_created;

什么是oracle.sql.DATE?你是说 java.sql.Date 吗? java 日期是什么意思?你知道 java.sql.Datejava.util.Date 的子类吗?

试试这个输出结果是什么?

ResultSet rs = iter.getResultSet();
if (rs.next()) {
    date = rs.getDate(1);
    if (date instanceof java.sql.Date)
       System.out.println("sql date");
    if (date instanceof java.util.Date)
       System.out.println("util date");

}

编辑:

我明白了 here 你或许可以这样做:

ResultSet rs = iter.getResultSet();
    if (rs.next()) {
        date = rs.getDate(1);
        if (date instanceof java.sql.Date)
           return new oracle.sql.DATE(date);
}

您可以将 ResultSet 转换为 OracleResultSet and then use the getDATE() 方法:

OracleResultSet rs = (OracleResultSet)iter.getResultSet();
if (rs.next()) {
    oracle.sql.DATE date = rs.getDATE(1);
}