gpt4 book ai didi

postgresql - 中非时间 (CAT) PostgreSQL TIMESTAMPTZ 转换是否存在问题?

转载 作者:行者123 更新时间:2023-11-29 14:13:13 26 4
gpt4 key购买 nike

我们在刚果的一个 PostgreSQL 11.4 部署使用了 CAT 时区(非洲/基加利 +02),并且在尝试将人工输入的时间戳转换为实际的 TIMESTAMPTZ 数据时我们的一个函数阻塞。

例如:

SELECT '2019-10-17 00:00:00 CAT'::TIMESTAMPTZ;
ERROR: invalid input syntax for type timestamp with time zone: "2019-10-17 00:00:00 CAT"
LINE 2: SELECT '2019-10-17 00:00:00 CAT'::TIMESTAMPTZ
^
SQL state: 22007
Character: 9

但是当我尝试使用 CEST(中欧语,也是 +02)时,它起作用了。

SELECT '2019-10-17 00:00:00 CEST'::TIMESTAMPTZ;
"2019-10-17 00:00:00+02"

顺便说一下,从 epoch 转换为 CAT 也可以

select to_timestamp(1571263200);
"2019-10-17 00:00:00+02"

版本:“x86_64-pc-linux-gnu 上的 PostgreSQL 11.4 (Ubuntu 11.4-1.pgdg18.04+1),由 gcc (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0,64 位编译” 在 Ubuntu 18.04.2 LTS 上

最佳答案

无论出于何种原因,'CAT' 默认情况下对于输入无效,大概是有人觉得它有歧义之类的。您可以附加行

CAT      7200    # Central Africa Time

到文件“$SHAREDIR/timezonesets/Default”以使其工作。

或者您可以创建一个包含以下内容的文件“$SHAREDIR/timezonesets/Africa”:

@INCLUDE Default
@OVERRIDE
CAT 7200 # Central Africa Time

然后将参数 timezone_abbreviations 设置为 'Africa'。

我不是钟表学家,你可能想在盲目添加之前研究一下为什么缺少 CAT。另外,如果你走上述任何一条路线,你应该在某个地方清楚地记录下来。您将需要重复升级 PostgreSQL、还原或移动数据库时执行的步骤。

或者,您可以预处理用户输入,将“CAT”替换为“Africa/Kigali”。

Incidentally, converting from epoch to CAT also works

select to_timestamp(1571263200);
"2019-10-17 00:00:00+02"

'CAT' 没有出现在您的示例中。所以不清楚这是什么例子。

关于postgresql - 中非时间 (CAT) PostgreSQL TIMESTAMPTZ 转换是否存在问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58417452/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com