defaultValue:sequlize.NOW 插入mysql后时间差8个小时
nodejs+mysql+sequlize,
定义数据model的时候使用如下:
createTime: { type: DataTypes.DATE, defaultValue: DataTypes.NOW },
但是实际插入的时间总是和现在相隔8个小时,
已经在mysql中设置过时区,进去mysql查询到的时间是正常的,但是不知道为什么defaultValue会少8个时间,不知道有没有人见过这个问题
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
https://segmentfault.com/q/10...
在小伙伴的帮助下找到了相关答案,详情参考以上链接的第一条回复。
大致总结就2种方法:
1.
const Sequelize = require('sequelize');
const sequelize = new Sequelize('dbname', 'username', 'password', {
});
2.
程序中设置process.env.TZ = 'Asia/Shanghai';
const Sequelize = require('sequelize');
const sequelize = new Sequelize('dbname', 'username', 'password', {
});
之前在做的就是这种,因为设置了环境变量却依旧得不到正确的时间,以为是数据库的问题。后面看到API才知道,需要在sequlize里面引用,否则没用。
应该还是时区的问题,UTC,东八区CST,看下这篇文章中JS与MySQL之间转换造成的问题