user3836820
user3836820

Reputation: 43

How to get Date from a resultSet

I have a problem when getting a Date object from a ResultSet. In database it has a value (for example 2014-08-01) and after getting it from resultSet, it has another value (2014-08-31). I know that ResultSet's getDate method returns java.sql.Date, but I tried a few solutions, such as:

Date date=new java.util.Date(resultSet.getDate(3).getTime());

or

Date date=resultSet.getTimestamp();

but the problem was the same. If I try

Date date=resultSet.getDate();

It throws a NullPointerException.

Can anybody explain this?

Upvotes: 4

Views: 54571

Answers (2)

loloreyn
loloreyn

Reputation: 31

You should use the java.sql.Date instead of java.util.Date, because ResultSet.getDate() returns an SQL Date, and not a Java one.

Upvotes: 2

SparkOn
SparkOn

Reputation: 8946

In your case you were not providing the columnName of the Date field to be retrieved.

This should do the job

 while (rs.next()) {
    java.sql.Time dbSqlTime = rs.getTime("columnName");
    java.sql.Date dbSqlDate = rs.getDate("columnName");
    java.sql.Timestamp dbSqlTimestamp = rs.getTimestamp("columnName");     
    java.util.Date dbSqlTimeConverted = new java.util.Date(dbSqlTime.getTime());
    java.util.Date dbSqlDateConverted = new java.util.Date(dbSqlDate.getTime());
    System.out.println(dbSqlTimeConverted);
    System.out.println(dbSqlDateConverted);
 }

iterate over the ResultSetObject get the Date from the ResultSetObject which is java.sql.Date then convert it to java.util.Date

Upvotes: 13

Related Questions