小编典典

在将Java Date写入SQL TIMESTAMP列之前,JDBC是否将日期从JVM时区转换为数据库会话时区?

java

在将Java
Date写入SQL
TIMESTAMP列之前,JDBC是否将日期从Java虚拟机时区转换为数据库会话的日期?

例如,假设Java虚拟机时区为UTC,数据库会话时区为UTC-5。如果Java程序根据JDBC标准尝试2000-01-01 00:00:00通过将其传递给来进行存储PreparedStatement#setTimestamp(int, Timestamp),则数据库将存储TIMESTAMP '2000-01-01 00:00:00'还是TIMESTAMP '1999-12-31 19:00:00'


阅读 358

收藏
2020-09-23

共1个答案

小编典典

不,JDBC只是有关客户端如何访问数据库的API。对于时间戳存储,这将必须由编写符合JDBC
API标准的数据库驱动程序的组织来决定。

是MySQL的的实现PreparedStatement。他们似乎将Java的JVM时区带到了MySQL时区(请检查setTimestampInternal()方法)。

2020-09-23