mysql修改全局中国时区时间

今天写代码的时候发现,代码放在国外一个主机上,
select * from checkins where TO_DAYS(create_time) = TO_DAYS(NOW()) and user_id=1
查询当前时间返回的结果是昨天(8号),如下图

mysql修改全局中国时区时间-第1张-讯沃blog(讯沃blog)

于是查询了服务器时区+8:00没错。加了date_default_timezone_set(‘Asia/Shanghai’);也无效。
查询资料后发现,是mysql时间时区的问题。使用TO_DAYS(NOW())语句就会出现这个问题。
查询当前时间,和我电脑的时间2021-04-09 11:28:54相差了几个小时。。

select now()

mysql修改全局中国时区时间-第2张-讯沃blog(讯沃blog)

时区信息

show variables like "%time_zone%";

mysql修改全局中国时区时间-第3张-讯沃blog(讯沃blog)

当前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;

mysql修改全局中国时区时间-第4张-讯沃blog(讯沃blog)


未经允许禁止转载
本文地址: https://www.77nn.net/4437.html
版权声明:本文为原创文章,版权归 讯沃blog 所有,未经允许,禁止任何单位或个人转载!

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝、微信、QQ扫一扫,即可进行扫码打赏哦

评论0

4 + 4 =

社交账号快速登录