【发布时间】:2019-04-26 05:54:27
【问题描述】:
我有一个 PostgreSQL 数据库,其中包含一个带有多个“带时区的时间戳”字段的表。 我有一个工具 (DBSync),我想用它来将此表的内容传输到另一个服务器/数据库。
当我将数据传输到 MSSQL 服务器时,所有日期时间值都将替换为“1753-01-01”。当我将数据传输到 PostgreSQL 数据库时,所有日期时间值都替换为“0001-01-01”。 这些系统的最短日期。
现在我在同一 PostgreSQL 服务器上的不同数据库中重新创建源表(包括内容)。唯一的区别:源表位于不同的数据库中。相同的服务器,相同的路由。只有端口不同。 用户不同,但在每个数据库中我拥有相同的权限。
数据库怎么会负责对数据进行明显不同的解释? PostgreSQL 数据库是否具有可能导致此类行为的特定于数据库的设置?我可以/应该检查哪些数据库设置?
明确地说,我不是在寻找另一种传输数据的方式。我有几个可用的。我想了解的是:如果应用程序从 server X 上的 database Y 中的 table A 读取日期时间信息,怎么会这样? strong>,它给了我错误的日期,而当从 server X 上的 database Z 读取同一个表时,我会得到应有的数据。
【问题讨论】:
-
你说你“转移”他们..这是什么意思?将数据复制到剪贴板,粘贴到 excel 中,通过电子邮件发送给您的同事,复制并粘贴回带有指向 sql 服务器的链接表的 access 数据库? (完全是在开玩笑,但这里的一些澄清将有助于解释您将这些数据移动到每个系统所采取的步骤)。
-
你说得对,我会更新问题
-
如果您可以看到源数据库中的正确时间戳,我怀疑是 DBSync 或源数据库数据类型。我认为有不止一种产品称为 DBSync。编辑您的问题并链接到您正在使用的 DBSync 可能会有所帮助。
标签: postgresql datetime