Sequelize存储时间默认是按照UTC标准存储(UTC即世界标准时间,北京时间=UTC+8)
所以sql数据库存储的时间总是与实际插入的时间相差8小时
解决方案: 添加属性:timezone: '+08:00' //东八时区
const { Sequelize } = require('sequelize');
const config = global.config.mssql
const sequelize = new Sequelize(config.database, config.username, config.password, {
host: config.host,
dialect: 'mssql',
dialectOptions: {
options: {
encrypt: false
}
},
port: config.port,
logging: false,// 阻止Sequelize在执行查询时将SQL输出到控制台
define: {
freezeTableName: true // 全局定义 表名===模型名称
},
timezone: '+08:00' //东八时区
});
添加该属性后重新执行,再次创建记录时数据库存入的时间即是当前北京时间。
但是,使用Sequelize查询打印出的时间仍是UTC标准时间。
而,使用sql语句查询出来的时间即是当前北京时间。