-1

我在我的 postgres 数据库中执行了以下操作

SET TIME ZONE 'UTC';

当我执行以下操作时,它将 UTC 显示为时区。

show timezone;

SELECT NOW();

接下来我要查询一个表。我的表有几列,其中一些是日期列。如果我查询该表,日期列会以 UTC 格式显示日期吗?什么是没有时间,只有列中的日期。此时区设置如何工作?

4

1 回答 1

1

在 Postgresql 中,SET TIME ZONE 'UTC'仅设置“当前”(会话范围)时区。

显然,时区对日期数据类型没有影响。除此之外,Postgresql 有两种 date-with-time 数据类型:

timestamptz = timestamp with time zone

timestamp   = timestamp without time zone

实际上,它们都没有存储时区,但它们在“当前时区”如何影响它们方面有所不同。简而言之,timestamp (with time zone)输入需要 timezone ,如果没有给出默认值是“当前时区”;并且其输出是使用“当前时区”写入的。Atimestamp *without* time zone不使用时区进行输入或输出。

有关详细信息,请阅读文档

于 2013-04-30T16:03:49.170 回答