gpt4 book ai didi

postgresql - postgres 中是否有类似 oracle 的 timestamp() 的等效函数

转载 作者:行者123 更新时间:2023-12-05 06:41:58 27 4
gpt4 key购买 nike

我正在从事一个 oracle 到 postgresql 数据库的迁移项目。我需要从 postgres 读取操作系统日期和时间。在 oracle 中,sysdate() 以日期类型数据返回系统日期时间,而 systimestamp() 返回时间戳类型数据,无论 time_zone 变量设置如何。但是在 postgres current_date() 和 current_timestamp() 中总是给出相对于为该数据库设置的时区变量的结果。同步时区变量(即设置时区='utc')是一种方法,但我不想更改我的时区变量。

我想得到的只是我系统的当前日期和时间(可能包括或不包括时区),就像在 oracle 中一样。任何 pl/pgsql 都会有所帮助。谢谢

最佳答案

数据类型 TIMESTAMP WITH TIME ZONE 在 Oracle 和 PostgreSQL 中是不同的。
Oracle 将时间戳信息与时间戳一起存储,而 PostgreSQL 将时间戳存储为 UTC 并以当前设置的时区显示(可通过 SQL 语句SHOW TimeZone)显示。

所以函数在 PostgreSQL 和 Oracle 中同时返回,但以不同的方式显示。这通常应该没有问题。

如果您确实需要将时区信息与时间戳一起存储,则必须使用单独的字段来存储时区信息。然后您可以使用 AT TIME ZONE将时间戳转换为该时区以供显示。

关于postgresql - postgres 中是否有类似 oracle 的 timestamp() 的等效函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38743513/

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