我已经将输入数据以日期格式存储在postgres数据库中,但是当我在浏览器中显示日期时,它会显示时区日期并将其从UTC转换。例如,我将日期存储为2020-07-16
。但是当我显示日期时,它会变成2020-07-15T18:00:00.000Z
。我尝试使用select mydate::DATE from table
只获取日期,但它仍然显示时区日期。我使用的是node-我的node应用程序中的postgres模块。我怀疑这是node-postgres模块上的一些配置?来自他们的doc:
node-postgres将DATE和TIMESTAMP列转换为在process.env.TZ设置的节点进程的本地时间
有没有什么方法可以让我只解析日期?如果我像这样查询SELECT TO_CHAR(mydate :: DATE, 'yyyy-mm-dd') from table
,我会得到2020-07-16
,但这只是为了获取日期,需要做很多工作。
3条答案
按热度按时间o8x7eapl1#
您可以创建自己的日期和时间类型解析器:
字符串
类型id可以在文件中找到:node_modules/pg-types/lib/textParsers.js
iaqfqrcu2#
它在这里被拼出来:
https://node-postgres.com/features/types
date / timestamp / timestamptz
字符串
jjhzyzn03#
原因是当你查询日期列时,它就是一个日期。
.toString()
与JavaScript一起使用相同。好吧,回到你的问题:试试看:
字符串