【发布时间】:2014-12-21 13:20:06
【问题描述】:
我正在尝试针对 Oracle DB 执行在 DATE 类型列上有 where 子句的查询。
条件类似于
collectTime BETWEEN TO_DATE('2014-12-14 01:00:00','YYYY-MM-DD HH24:MI:SS') AND
TO_DATE('2014-12-14 03:40:00','YYYY-MM-DD HH24:MI:SS')
现在,如果我使用 DriverManager getConnection 方法获取连接对象并执行准备好的语句,输出看起来很好。也就是说,当我查看返回的 collectTime 列(它以 java.sql.Timestamp 的形式返回)值时,我看到了我传入的两个日期之间的值 - 例如 2014-12-14 01:09:00。
但是,如果我通过 JDBC 数据源(在 Weblogic 中配置)获取连接对象,则对应于 DATE 列的列值会以不同的方式返回。示例2014-12-13 17:09:00.0。
我无法理解造成这种差异的原因。所有值似乎都可能按特定时区进行调整。关于为什么会发生这种情况的任何见解?
我尝试将会话时区设置为 UTC,但这没有任何影响。
【问题讨论】:
标签: sql oracle jdbc connection