我正在使用sequelize orm和nodejs。当我在where子句中将值传递给datetime列时,它会自动添加本地偏移量。
例如,我正在写这篇文章。
TripDetail.findOne({
where: {
trip_detail_id: trip_id,
trip_detail_trip_start: '2017-10-05 15:27:38'
},
})
它显示的查询是日志
SELECT *
FROM `tbl_trip_detail` AS `TripDetail`
WHERE `TripDetail`.`trip_detail_id` = 1
AND
`TripDetail`.`trip_detail_trip_start` = '2017-10-05 22:27:38'
sequelize的配置是
{
user: 'root',
password: '',
database: 'abc',
dialect: 'mysql',
options: {
dialect: 'mysql',
host: 'localhost',
port: 3306,
logging: console.log, // or specify sails log level to use ('info', 'warn', 'verbose', etc)
dialectOptions: {
timezone: 'utc', //for reading from database
dateStrings: true,
typeCast: function (field, next) { // for reading from database
if (field.type === 'DATETIME') {
return field.string()
}
return next()
}
},
},
}
我也试着完全移除这个对象。
1条答案
按热度按时间1aaf6o9v1#
您应该在sequelize的配置中设置正确的时区,例如:
这取决于你在哪个时区