estoy usando PreparedStatement con marca de tiempo en la cláusula where:PreparedStatement y setTimestamp en JDBC de Oracle
PreparedStatement s=c.prepareStatement("select value,utctimestamp from t where utctimestamp>=? and utctimestamp<?");
s.setTimestamp(1, new Timestamp(1273017600000L)); //2010-05-05 00:00 GMT
s.setTimestamp(2, new Timestamp(1273104000000L)); //2010-05-06 00:00 GMT
ResultSet rs = s.executeQuery();
if(rs.next()) System.out.println(rs.getInt("value"));
El resultado que se ve es diferente, cuando tenga diferentes zonas horarias en el equipo cliente. ¿Es esto un error en Oracle jdbc? o corregir el comportamiento?
La versión de la base de datos Oracle es 10.2 y he intentado con la versión 10.2 y 11.1 del controlador jdbc de Oracle oracle.
El parámetro es Indicación de fecha y hora, y esperaba que no se realizarán conversiones de tiempo en el camino. El tipo de columna de la base de datos es DATE, pero también lo comprobé con el tipo de columna TIMESTAMP con los mismos resultados.
¿Hay alguna manera de lograr el resultado correcto? No puedo cambiar la zona horaria predeterminada en toda la aplicación a UTC.
Gracias por su ayuda
Por favor edite su pregunta y agregue los tipos de t_begin y t_end. –