问题描述
周末我们项目的同事说nodejs传给他的一个datetime时间参数比数据库里面记得时间少8个小时,我检查了下代码,发现数据是从数据库查询出来的,中间没有经过任何人为的改动,那我就很纳闷了,然后我就怀疑是mysql查询的时候自动将datetime时间按照utc标准转了,因为datetime类型不常用,所以一直没有发现,解决方案很简单,如下
问题解决
- 字段查询的时候使用CONVERT_TZ(xxx,'+00:00','+08:00'),自动转为本地时区,8个小时的时差就没有了
- 在mysql配置的时候设置timezone为本地时区,这个由于我们使用的是连接池连接,发现设置后不生效,直接连接的朋友可以试试
网友评论