节点postgres日期未准确保存

时间:2013-11-21 22:59:13

标签: node.js postgresql node-postgres

我正在使用Node.js,Postgres和node-postgres库。当我尝试使用如下代码插入当前日期的新记录时:

client.query('INSERT INTO ideas(date) VALUES($1)', [new Date()], ...);

这样运行正常,没有错误。但是,当我对数据库运行select语句并记录结果时,我给出的日期显示为:

Wed Nov 20 2013 19:00:00 GMT-0500 (EST)

这很好,除了当我插入记录时,它是11月21日星期四。时间是5:47,而不是7:00,因为输出会显示。

我多次运行代码,无论时间是什么,它都存储了相同的不准确日期,即使下一个小时开始也是如此。这让我相信,由于某种原因,它只存储日期而不是小时或分钟。此外,日期只有一天的事实表明问题可能与node-postgres处理日期的方式有关。

我知道Javascript在将其传递给查询时计算当前日期并不是问题,因为我记录了new Date()并且它是准确的,日期,分钟,小时和秒。

对此问题的任何帮助将不胜感激。谢谢!

1 个答案:

答案 0 :(得分:5)

问题(感谢Craig指出这一点)是我在Postgres列中使用date类型,它只记录日期,而不是时间。一旦我切换到timestamptz类型,一切都完美无缺!