我在postgres数据库中执行了以下操作
SET TIME ZONE 'UTC';
当我执行以下操作时,它将UTC显示为时区。
show timezone;
SELECT NOW();
接下来我想查询一个表。我的表有几列,其中一些是日期列。如果我查询该表,日期列是否会以UTC格式显示日期?什么是没有时间,只有列中的日期。这个时区设置如何运作?
答案 0 :(得分:1)
在Postgresql中,SET TIME ZONE 'UTC'
仅设置“当前”(会话范围)时区。
显然,时区对date数据类型没有影响。 除此之外,Postgresql还有两种与日期同步的数据类型:
timestamptz = timestamp with time zone
timestamp = timestamp without time zone
实际上,它们都没有存储时区,但它们在“当前时区”如何影响它们方面存在差异。简而言之,timestamp (with time zone)
输入需要时区,如果没有给出,则默认为“当前时区”;并使用“当前时区”写入其输出。 timestamp *without* time zone
不使用时区进行输入或输出。
有关详情,请阅读docs。