mysql数据库修改全局为中国时区时间

今天写代码的时候发现,代码放在国外一个主机上,
select * from checkins where TO_DAYS(create_time) = TO_DAYS(NOW()) and user_id=1
查询当前时间返回的结果是昨天(8号),如下图
20210409122327.png
于是查询了服务器时区+8:00没错。加了date_default_timezone_set(‘Asia/Shanghai’);也无效。
查询资料后发现,是mysql时间时区的问题。使用TO_DAYS(NOW())语句就会出现这个问题。
查询当前时间,和我电脑的时间2021-04-09 11:28:54相差了几个小时。。

select now()

20210409112912.png
时区信息

show variables like "%time_zone%";

20210409112841.png
当前mysql服务器时区显示为PST(太平洋时间),
修改时区:
##修改mysql全局时区为北京时间,即我们所在的东8区。

set global time_zone = '+8:00';

如果是虚拟主机之类,可能会出现
#1227 – Access denied; you need (at least one of) the SUPER privilege(s) for this operation。权限不够,没办法设置,那就在mysql语句前面加上以下语句,如下图:
##修改当前会话时区

set time_zone = '+8:00';

#立即生效

flush privileges;

20210409114705.png

© 版权声明
THE END
喜欢就支持一下吧
点赞0赞赏 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码

    暂无评论内容