节点postgres日期未准确保存

max*_*aga 5 postgresql node.js node-postgres

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

client.query('INSERT INTO ideas(date) VALUES($1)', [new Date()], ...);
Run Code Online (Sandbox Code Playgroud)

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

Wed Nov 20 2013 19:00:00 GMT-0500 (EST)
Run Code Online (Sandbox Code Playgroud)

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

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

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

任何有关这个问题的帮助将不胜感激.谢谢!

max*_*aga 5

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