Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 节点';s Postgres模块pg返回错误的日期_Node.js_Node.js Pg - Fatal编程技术网

Node.js 节点';s Postgres模块pg返回错误的日期

Node.js 节点';s Postgres模块pg返回错误的日期,node.js,node.js-pg,Node.js,Node.js Pg,我已经在Postgres中声明了一个日期列作为日期 当我使用节点的pg模块写入值时,Postgres工具pgAdmin会正确显示它 当我使用pg而不是普通日期读取值时,日期时间字符串带有错误的日期 e、 g: 我可以阻止节点的pg应用时区到仅限日期的数据吗?它是为出生日准备的,ihmo时区与此无关。编辑github上开发人员的问题回复 node postgres团队很久以前就决定转换日期和日期时间 在撤离时,没有时区到当地时间。这是一致的 我们在过去挖到了一些文件。如果你在附近扎根 通过这里的老

我已经在Postgres中声明了一个日期列作为日期

当我使用节点的pg模块写入值时,Postgres工具pgAdmin会正确显示它

当我使用pg而不是普通日期读取值时,日期时间字符串带有错误的日期

e、 g:


我可以阻止节点的pg应用时区到仅限日期的数据吗?它是为出生日准备的,ihmo时区与此无关。

编辑github上开发人员的问题回复

node postgres团队很久以前就决定转换日期和日期时间 在撤离时,没有时区到当地时间。这是一致的 我们在过去挖到了一些文件。如果你在附近扎根 通过这里的老问题,你可以找到讨论

好消息是它很容易克服这种行为并返回 你认为合适的日期

这里有关于如何执行此操作的文档:

甚至可能有一个模块可以从中转换日期 postgres进入任何你想要的时区(我猜是utc)。如果 没有…这是一个很好的机会写一个和大家分享

原始消息 看起来这是pg模块中的一个问题。 我是JS和node的初学者,所以这只是我的解释

解析日期(不含时间部分)时,假定为本地时间。 pg\node\u modules\pg types\lib\textParsers.js

if(!match) {
    dateMatcher = /^(\d{1,})-(\d{2})-(\d{2})$/;
    match = dateMatcher.test(isoDate);
    if(!match) {
      return null;
    } else {
      //it is a date in YYYY-MM-DD format
      //add time portion to force js to parse as local time
      return new Date(isoDate + ' 00:00:00');
但是当JS date对象转换回字符串时,会应用
getTimezoneOffset

pg\lib\utils.js s<代码>函数日期字符串(日期)

另一个选项是更改列的数据类型:

可以通过运行以下命令来执行此操作:

ALTER TABLE table_name
ALTER COLUMN column_name_1 [SET DATA] TYPE new_data_type,
ALTER COLUMN column_name_2 [SET DATA] TYPE new_data_type,
...;
如前所述


我想知道同样的问题,我改为
text

这看起来像是node-pg中的一个bug。你在使用Brianc的驱动程序?这让我很害怕。我刚刚建议一位客户从Qt切换到Node+Web。应用程序中充满了日期/时间data@DenysS埃古雷特:是的,“名称”:“pg”,“版本”:“4.4.0”这看起来不对:(我检查了日期的类型是1082)好的,我做到了:这个答案太棒了。完全使做我需要做的事情变得更容易@Valentin,你愿意分享一下让node pg在不考虑TZ的情况下返回对象是多么“简单”吗?一个代码示例会很好
ALTER TABLE table_name
ALTER COLUMN column_name_1 [SET DATA] TYPE new_data_type,
ALTER COLUMN column_name_2 [SET DATA] TYPE new_data_type,
...;