我正在使用带有NodeJ的续集ORM。当我将值传递给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'
我的续集配置是
{
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()
}
},
},
}
我还尝试过完全删除DialectOptions对象。
答案 0 :(得分:0)
您应该在配置中设置正确的时区以进行序列化 喜欢:
timezone: '+08:00'
这取决于您所在的时区