MYSQL 更新时自定义时间
我有一个包含一些行的表,其中有一个定义,如下所示:
`metric_update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
所以我真正希望它做的是在将数据插入该表时自动插入时间戳。确实如此。但我需要的是将基于 GMT 的时间写入该字段(当前服务器时间类似于 GMT+2)。
有没有办法让 MYSQL 做这样的事情?
I have a table with some rows and within them there is a definition that goes like this:
`metric_update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
So what i actually want it to do is to automatically insert a timestamp when inserting data into that table. And it does. But what I need is to write a GMT based time into that field (current server time is like GMT+2).
Is there a way to say to MYSQL to do such thing?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果您的服务器配置了时间和时区设置正确,然后在内部 存储在 TIMESTAMP 列中的所有时间都转换为 GMT (因为这就是 Unix 时间戳的要求)。当您检索此数据时,它们会转换回您的会话时区。如果您希望它以 GMT 时区显示,则需要在检索数据时进行转换,而不是在插入数据时进行转换。
例如,请参阅下面的控制台转储。您可以自己运行这些命令来检查。
If your server time and timezone settings are configured correctly, then internally all times stored in TIMESTAMP columns are converted to GMT (since that's what Unix timestamp mandates). They're converted back to your session timezone when you retrieve this data. If you want it presented in GMT timezone, you need to do conversion while retrieving data not while inserting.
See the console dump below for example. You can run these commands yourself to check.
这会将插入的时间戳从
GMT+2
转换为GMT+3
。This will convert the inserted timestamp from
GMT+2
toGMT+3
.