Comment faire un critère avec les dates en JDBC
Bonne et heureuse année à tout le monde !
Je voulais avec JDBC attaquer une base de données. J'ai ainsi fait la requête suivante :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
public void rechercheParDate(){
Statement st=null;
ResultSet rs=null;
try {
st=connect.createStatement();
rs=st.executeQuery("SELECT Vol.NumVol, Vol.DateVol, Vol.HeureVol, Vol.VilleDep, Vol.VilleArr, Vol.TypeVol"+
" FROM Vol WHERE (((Vol.DateVol)='"+"02/07/09"+"'))");
while(rs.next()){
System.out.println(rs.getString("NumVol")+" "+rs.getDate("DateVol")+" "+rs.getTime("HeureVol")+" "+
rs.getString("VilleDep")+" "+rs.getString("VilleArrivee")+" "+rs.getString("TypeVol"));
}
} catch (SQLException e) {e.printStackTrace();}
} |
Quand j'exécute mon code, j'ai une erreur avec mon critère dans WHERE. Au fait, c'est avec la date que j'ai des problèmes.
J'ai aussi un embarrat entre java.util.Date et java.sql.Date, quel type utilisé pour mes dates.
Voici l'erreur qui s'affiche :
Code:
1 2 3 4 5 6 7 8 9 10
|
java.sql.SQLException: [Microsoft][Pilote ODBC Microsoft Access] Type de données incompatible dans l'expression du critère.
at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6958)
at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7115)
at sun.jdbc.odbc.JdbcOdbc.SQLExecDirect(JdbcOdbc.java:3111)
at sun.jdbc.odbc.JdbcOdbcStatement.execute(JdbcOdbcStatement.java:338)
at sun.jdbc.odbc.JdbcOdbcStatement.executeQuery(JdbcOdbcStatement.java:253)
at af.CompagnieAf.rechercheParDate(CompagnieAf.java:41)
at af.GestionAF.main(GestionAF.java:16) |