当前位置: 首页 > 知识库问答 >
问题:

如何将postgres数据库从CST转换为GMT?

莫翰藻
2023-03-14

我在中心时区的服务器上安装了一个postgres db,所以所有的时间戳列都在中心时区。

在postgres中有没有办法将数据库中的所有时区列从CST更改为GMT?将数据库配置为使用GMT是最佳做法吗?

共有1个答案

季凡
2023-03-14

最佳做法是避免使用不了解时区的时间戳类型,并始终使用时间戳(时区时间戳的缩写类型)来存储时间戳。

TIMESTAMPTZ存储UTC中的时间戳和最初写入时间戳的时区(如CSTPSTGMT 6)。这允许您始终正确地操作和显示这些列,无论当前的服务器或客户端时区设置是什么。

您应该能够使用以下方法将现有的时间戳列转换为时间戳:

ALTER TABLE mytable ALTER COLUMN old_tstamp TYPE TIMESTAMPTZ

在这样做之前,您应该在小数据集或小测试表上进行实验,了解从时间戳到时间戳的转换是如何真正为您工作的,以便在数据上保留时区信息。

如果转换不能正常工作,您可以使用以下语句临时设置当前会话的时区(仅用于转换目的)(在ALTER TABLE... COLUMN... TYPE之前使用):

SET timezone TO 'CST6CDT';

SET timezone TO 'UTC+6';

这将影响后续的操作,以及从时间戳时间戳的转换-请确保操作正确。

将所有时间戳转换为TIMESTAMPTZ后,服务器或客户端时区设置(默认为当前操作系统时区设置)仅用于显示目的,因为数据操作总是正确的。

 类似资料:
  • 问题内容: 有什么简单的方法可以将数据库从mysql更改为mongoDB? 或更好的一个建议我好的教程做到这一点 问题答案: 有什么简单的方法可以将数据库从mysql更改为mongoDB? 方法#1 :以CSV格式从MySQL导出,然后使用mongoimport工具。但是,这在处理二进制数据的日期方面并不总是很好。 方法2 :使用您选择的语言编写传输脚本。基本上,您编写了一个程序,一次从MySQL

  • 2.Select query返回具有正确结构的JSON以转换为pojo 在mysql shell上执行查询将返回预期的JSON: 在camel中运行查询时,我遇到了一个问题,对此我无法找到解释或解决方案。 null 提前致谢

  • 问题内容: 假设我有一个结构: 与数据库表具有相同的架构。将数据库行解析为结构的最简单方法是什么?我在下面添加了一个答案,但是我不确定这是最好的答案。 问题答案: 这是一种实现方法-只需在函数中手动分配所有结构值即可。

  • 我做了下面的代码,但我知道它是正确的或不是,请协助我做正确的方式时区转换。 我把UTC日期作为json字符串,转换成用户的时区格式,并显示Android端

  • 问题内容: 我在我的postgres数据库中存储了一个json数组。json看起来像这样: 现在,我需要选择数组,以便任何元素都位于查询结果的不同行中。因此,我执行的SELECT语句必须以这种方式返回数据: 我尝试使用该功能 但它不接受类型 问题答案: 我将pozs最初写的答案发布在评论部分。 适用于PostgreSQL的数组类型。 而是可以使用以下功能之一: (9.3+) (9.4+) (9.4