【发布时间】:2020-08-18 10:16:36
【问题描述】:
我有一张这样的桌子。
CREATE TABLE tstz (
ts timestamp NULL,
tstz timestamptz NULL,
seq text NULL
);
每当我存储带有时区的时间戳时,它都会转换为数据库的时区。如何取回检索时使用的原始时区?
例如,我将像 2020-04-29T08:06:03.424689+05:30 这样的时区存储到数据库中。但是,当我使用 Java 读取数据库并再次读取时区时,如下所示。
Optional<Tstz> tstzOptionalSaved = tstzRepository.findById(tstz.getSeq());
Tstz tstzSaved = tstzOptionalSaved.get();
log.info("Timezone {}" , tstzSaved.getTstz().getZone().getId());
上面的代码总是返回 UTC,它是数据库的时区。
有没有办法在 Postgres 或 Java 中做到这一点?
【问题讨论】:
-
原始时区未存储在该值中
-
@a_horse_with_no_name 我们没有办法做到这一点?
-
您无法检索未存储的信息
-
您使用什么数据类型来映射您的域类
Tstz中的列?
标签: java-8 postgresql-9.5