【发布时间】:2020-02-05 16:03:57
【问题描述】:
我有一个 postgresql 数据库,我使用 flyway 部署脚本。我使用 maven flyway 插件来启动针对目标数据库的数据库构建。在那个构建中,我有执行以下操作的脚本:
create table my_table(
my_date_time timestamp with time zone not null
);
insert into my_table(my_date_time)
select '2000-01-01';
postgresql 数据库时区设置为 UTC。我的客户端机器(运行 maven/flyway 构建)正在运行 CEST (UTC+2:00)。
当脚本运行时,数据库将上面的字符串解释为 '1999-12-31 22:00:00+00:00' 并将其写入存储。
flyway 创建的 jdbc 客户端连接似乎没有将其客户端时区设置为 UTC,而是采用 timstamp 字符串并将其解释为 '2000-01-01 00:00:00+02:00'。
如何将flyway创建的jdbc连接上的客户端时区设置为UTC?有没有可以放在我的 flyway.conf 文件中的设置?
如果我将本地机器时区更改为 UTC,问题就会消失,但我不想在我的开发工作站上这样做。
【问题讨论】:
标签: postgresql jdbc flyway