我已经在oracle DB中创建了示例表,如下所示
"CREATED_ON" TIMESTAMP (6),
"CREATED_ON_TIMEZONE" TIMESTAMP (6) WITH TIME ZONE,
"TIMEZONE_GMT" TIMESTAMP (6) WITH TIME ZONE
并从Java插入值,如下所示
preparedStatement.setTimestamp(1, new Timestamp(new Date().getTime()));
preparedStatement.setTimestamp(2, new Timestamp(new Date().getTime()));
preparedStatement.setTimestamp(3, new Timestamp(new Date().getTime()) ,Calendar.getInstance(TimeZone.getTimeZone("UTC")));
ASIA / CALCUTTA中的JVM时区。我已经使用SQL开发人员来查询数据。
我只是想清除我的理解
由于dataType仅是时间戳记,因此第一列按本地JVM的值存储,没有时区,即29-NOV-17 07.04.28.014000000 PM。因此,对于具有timstamp数据类型的列,DB存储的值是由JDBC驱动程序传递的本地JVM的值,并且JDBC端或DB端都没有发生转换?
TIMEZONE的第二列存储值,即17年11月29日07.04.28.014000000 PM
亚洲/加尔各答。那么,这是否意味着DB使用JDBC驱动程序提供的时区信息来存储列的值,并且DB端没有任何转换?