PreparedStatement и setTimestamp в оракуле JDBC

Я использую PreparedStatement с меткой времени в предложении where:

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"));

Результат, который я получаю, отличается, когда у меня разные часовые пояса на клиентском компьютере. Это ошибка в Oracle JDBC? или правильное поведение?

Версия базы данных Oracle - 10.2, и я попробовал с тонким драйвером oracle jdbc версии 10.2 и 11.1.

Параметр - Timestamp, и я ожидал, что в пути преобразование времени не будет. Тип столбца базы данных - DATE, но я также проверил его с типом столбца TIMESTAMP с теми же результатами.

Есть ли способ добиться правильного результата? Я не могу изменить часовой пояс по умолчанию во всем приложении на UTC.

Спасибо за вашу помощь

Ответы на вопрос(1)

Ваш ответ на вопрос