J'ai le code SQL suivant qui renvoie la valeur BILL_DATE maximale en fonction de certains critères. BILL_DATE est défini dans la base de données en tant que DATE.Récupération d'une date maximale à partir de DB2 en Java pour lancer une exception de conversion de type de colonne incorrecte
SELECT MAX(BILL_DATE)
FROM BILLTABLE
WHERE col1 = ? and
col2 = ?
Mais quand je lis la valeur du resultSet.
bill.setBillDate(resultSet.getDate(1));
Une exception est levée:
Conversion de données incorrecte: type de colonne Mauvais résultat pour la conversion demandée. ERRORCODE = -4461, SQLSTATE = 42815
J'ai aussi essayé
bill.setBillDate(resultSet.getString(1));
Mais cela ne revient pas une date. Il retourne soit 100
, 200
ou 300
qui est évidemment pas correct.
Existe-t-il une autre façon de procéder? Est-ce que je fais quelque chose de mal?
Merci, Randall
EDIT
J'ai eu deux ResultSets ouverts dans la fonction où je lisais dans le BILL_DATE. J'ai changé le code pour le suivant et ça fonctionne bien.
bill.setBillDate(resultSet1.getDate(1));
Que voyez-vous si vous imprimez getString (1)? Comment définissez-vous le champ de date dans votre tableau? – Ash
J'ai mis à jour ma question qui reflète vos questions. –