0

我有一个包含出生日期列的 CSV 文件。我正在使用 Adob​​e Campaign 工具(以前称为 neolane)导入我的 PostgreSQL 数据库。

在我的工具中,我提供了出生日期列的数据类型为mm/dd/yyyy hh:mm:ss

9/20/1942 12:00:00 AM和存储到数据库时更新的日期被正确保存,例如1942-09-20 00:00:00+06:30。不确定如何计算秒数。如果你能对此发表评论。

然后较旧的值(所有早于 1941 年),例如10/1/1941 12:00:00 AM将作为1941-09-30 23:23:20+05:53:20存储在数据库中,这是一天前的出生日期列中提到的一个。

不确定这是与 PostgreSQL 相关的问题还是与产品相关的问题。

4

1 回答 1

1

首先,您说您正在尝试导入日期,但显然是在导入时间戳。日期没有小时、分钟或秒。

需要日期时不要使用时间戳。

其次,您没有为这些值提供时区,而是将它们存储为“带有时区的时间戳”。

我不确定您当地的时区是什么,但如果我们尝试加尔各答,那么看起来我们会得到类似的结果。随着时间的推移,时区偏移往往会变得有点奇怪。在许多地方,直到主要的火车旅行和电报的到来,才迫切需要标准化时区。这可能需要很长时间,具体取决于当地政治。

所以 - 如果你可以这样做,请使用日期。

如果不是,请在保存数据时指定您所指的时区,并且不要使用午夜,使用上午 10 点或中午或类似的时间。否则时区更改将(非常正确)影响显示的日期。

手册中有关于日期和时间处理的讨论。那里提到了“Olson”时区历史数据库,并提供了一些有趣的阅读

于 2016-05-16T15:57:16.313 回答