我的node服务使用Sequelize来接已经创建好的mysql;
mysql的时间类型为timestamp,而在Sequelize中定义的模型是这样的:
module.exports = function (sequelize, DataTypes) { var User = sequelize.define("user", { id: { type: DataTypes.BIGINT, primaryKey: true }, create_time: DataTypes.DATE, update_time: DataTypes.DATE },{ freezeTableName: true, timestamps: false }); return User; }; 当我往数据库插入一条记录时 var data = { id: 1234, create_time: new Date(), update_time: new Date() }; User.create(data).then(function (result) { console.log('添加成功!'); }).catch(function (err) { console.log('添加失败!'); });
数据是这样显示的
但是我查出来的记录却是这样的
{
"id": 1234,
"create_time": "2017-08-04T01:46:36.000Z",
"update_time": "2017-08-04T01:46:36.000Z"
}
数据库的时间是Linux时间,但是好像没用那个时间
我用sql语句查出来时间是对的,所以我觉得是Sequelize的问题.
我尝试用moment.UTC().format()来转化他,好像不好使.
但我觉得这样是不可取的,假设我要查1万条数据我不可能转化1万次吧!
我感觉是Sequelize中定义模型的问题,能有人帮帮我吗
差了14个时区,感觉确实不对,改改试试: