我试图运行像
这样的简单查询Insert into table (somedate) values ('2018-06-11 23:59:00')
但是Sequelize将其作为
执行Insert into table (somedate) values ('2018-06-12 02:59:00')
是否可以选择设置日期"按原样#34;没有以任何方式转换或更改它?
答案 0 :(得分:1)
我为你找到了一个hacky解决方案。你必须编辑一个并不总是一个选项的Sequelize文件,但它可以解决你的问题。
打开sequelize/lib/data-types.js
,您会看到
DATE.prototype._stringify = function _stringify(date, options) {
date = this._applyTimezone(date, options);
return date.format('YYYY-MM-DD HH:mm:ss.SSS Z');
};
Z
功能中的date.format()
表示"当前时区",请尝试删除Z
:
return date.format('YYYY-MM-DD HH:mm:ss.SSS');
答案 1 :(得分:1)
你实际上可以告诉续集不要在阅读时将其转换为UTC,你也可以在写作时提供时区
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
});