首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL - NOW()值不同,如果它在触发器中或在select中

问MySQL - NOW()值不同,如果它在触发器中或在select中
EN

Stack Overflow用户
提问于 2015-11-24 20:44:24
回答 2查看 397关注 0票数 3

我对MySQL NOW()函数有一个问题

如果我运行:

代码语言:javascript
复制
SELECT NOW();

我得到了值:

代码语言:javascript
复制
2015-11-24 13:35:00 (correct value with Swedish winter-time)

但是,如果我在触发器函数中使用NOW()来更新时间戳列,当另一列发生如下更改时:

代码语言:javascript
复制
SET NEW.timestamp = NOW(); 

我得到了值:

代码语言:javascript
复制
2015-11-24 12:35:00

我怎么才能解决这个问题,或者为什么它会这样呢?

EN

回答 2

Stack Overflow用户

发布于 2015-11-24 20:56:07

要使用NOW()获取当前日期和时间,请根据您的国家/地区设置时区以获取正确的日期和时间。请检查链接here

如果要更改MySQL服务器的时区以调整NOW()函数返回的当前日期和时间,请使用以下语句:

设置time_zone = your_time_zone;

票数 1
EN

Stack Overflow用户

发布于 2015-11-24 22:59:27

MySQL有多种指定时区的方法-服务器具有默认时区,每个客户端也可以基于每个连接指定自己的时区。

我认为您的SELECT使用的是客户端连接指定的时区,而触发器使用的是服务器的默认时区。

https://dev.mysql.com/doc/refman/5.6/en/time-zone-support.html

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33894049

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档