views:

119

answers:

2

I have the following SQL that returns the max BILL_DATE based on some criteria. BILL_DATE is defined in the database as a DATE.

SELECT MAX(BILL_DATE)
FROM BILLTABLE
WHERE col1 = ? and
      col2 = ?

But when I read the value from the resultSet.

bill.setBillDate(resultSet.getDate(1));

An exception is thrown:

Invalid data conversion: Wrong result column type for requested conversion. ERRORCODE=-4461, SQLSTATE=42815

I have also tried

bill.setBillDate(resultSet.getString(1));

But that doesn't return a date. It returns either 100, 200 or 300 which is obviously not correct.

Is there another way to do this? Am I doing something wrong?

Thanks, Randall

EDIT

I had two resultSets open in the function where I was reading in the BILL_DATE. I changed the code to the following and it works fine.

bill.setBillDate(resultSet1.getDate(1));
A: 

Ash is right, how are you defining the date column?

Is it possible the column is timestamp? In that case try resultSet.getTimestamp(1))

Michael Sharek
I have updated my question reflecting your questions.
Randall Kwiatkowski
A: 

I had two resultSets open in the function where I was reading in the BILL_DATE. I changed the code to the following and it works fine.

bill.setBillDate(resultSet1.getDate(1));
Randall Kwiatkowski