我遇到了MySQL NOW()函数的问题
如果我跑:
SELECT NOW();
我得到了价值:
2015-11-24 13:35:00 (correct value with Swedish winter-time)
但是如果我在触发器函数中使用NOW()来更新时间戳列,而另一列更改如下:
SET NEW.timestamp = NOW();
我得到了价值:
2015-11-24 12:35:00
我如何解决这个问题或者为什么会这样?
答案 0 :(得分:1)
要使用NOW()获取当前日期和时间,请根据您所在的国家/地区设置时区以获取正确的日期和时间。 请查看链接here
如果要更改MySQL服务器的时区以调整NOW()函数返回的当前日期和时间,请使用以下语句:
SET time_zone = your_time_zone;
答案 1 :(得分:1)
MySQL有多种指定时区的方法 - 服务器有一个默认时区,每个客户端也可以在每个连接的基础上指定自己的时区。
我认为您的SELECT
正在使用客户端连接指定的时区,而触发器正在使用服务器的默认时区。
https://dev.mysql.com/doc/refman/5.6/en/time-zone-support.html