首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Node Sequelize -按原样插入日期,不转换为UTC

Node Sequelize -按原样插入日期,不转换为UTC
EN

Stack Overflow用户
提问于 2018-06-11 20:45:21
回答 2查看 4.9K关注 0票数 0

我尝试运行一个简单的查询,如下所示

代码语言:javascript
复制
Insert into table (somedate) values ('2018-06-11 23:59:00')

但Sequelize将其执行为

代码语言:javascript
复制
Insert into table (somedate) values ('2018-06-12 02:59:00')

有没有一个选项可以“按原样”设置日期,而不进行任何转换或更改?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-06-12 09:00:19

实际上,您可以告诉sequelize在读取时不要将其转换为UTC,也可以在写入时提供时区

代码语言:javascript
复制
const sequelize = new Sequelize('db_name', 'postgres', 'postgres', {
  host: '127.0.0.1',
  dialectOptions: {
    useUTC: false //for reading from database
  },
  dialect: 'postgres',
  timezone: '+05:30', // for writng
}); 
票数 1
EN

Stack Overflow用户

发布于 2018-06-11 21:32:09

我为你找到了一个老生常谈的解决方案。你必须编辑一个序列化文件,这并不总是一个选项,但它可能会解决你的问题。

打开sequelize/lib/data-types.js,你会看到

代码语言:javascript
复制
DATE.prototype._stringify = function _stringify(date, options) {
  date = this._applyTimezone(date, options);

  return date.format('YYYY-MM-DD HH:mm:ss.SSS Z');
};

date.format()函数中的Z表示“当前时区”,请尝试删除该Z

代码语言:javascript
复制
return date.format('YYYY-MM-DD HH:mm:ss.SSS');
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50798083

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档