我有一个包含出生日期列的CSV文件。我使用Adobe Campaign工具(以前称为neolane)导入我的PostgreSQL数据库。
在我的工具中,我提供了出生日期列的数据类型为 mm / dd / yyyy hh:mm:ss
9/20/1942 12:00:00 AM 等日期以及存储到数据库时更新的日期正确保存,例如 1942-09-20 00:00:00 + 06:30 。不确定如何计算秒的分数。如果你可以对此发表评论。
然后, 10/1/1941 12:00:00 AM 的旧值(超过1941年)将被存储在数据库中 1941-09-30 23:23: 20 + 05:53:20 ,这是出生日期栏中提及的那一天。
不确定这是与PostgreSQL或产品相关的问题。
答案 0 :(得分:1)
首先,您说您正在尝试导入日期,但显然正在导入时间戳。日期没有小时,分钟或秒钟。
如果您想要约会,请不要使用时间戳。
其次,您不是为这些值提供时区,而是将它们存储为"带时区的时间戳"。
我不确定你当地的时区是什么,但如果我们尝试加尔各答,那么看起来我们得到了类似的结果。随着时间的推移,时区偏移往往会有点奇怪。在很多地方,直到主要的火车旅行和电报的到来,都迫切需要标准化时区。这可能需要很长时间,取决于当地政治。
所以 - 如果你可以这样做,请使用日期。
如果没有,请指定保存数据时的时区,也不要使用午夜,使用10AM或中午或类似时间。否则,时区更改将(非常正确)影响显示的日期。
讨论日期和时间处理in the manuals。那里提到了"Olson" timezone history database并提供了一些有趣的阅读。