如何使用CURRENT_TIMESTAMP以UTC格式保存MYSQL数据库中的记录,而不使用LOCALTIME?
问题描述:
保存记录,以作为具有CURRENT_TIMESTAMP这应该是UTC时间,而不是本地时间“CREATED_DATE”列如何使用CURRENT_TIMESTAMP以UTC格式保存MYSQL数据库中的记录,而不使用LOCALTIME?
答
UTC_TIMESTAMP()函数
在MySQL中,UTC_TIMESTAMP
返回当前UTC日期和时间为值为YYYY-MM-DD HH:MM:SS
或YYYYMMDDHHMMSS.uuuuuu格式,具体取决于函数的用法,即在字符串或数字上下文中。
注意:由于UTC_TIMESTAMP()
适用于当前日期时间,因此您的输出可能与显示的输出有所不同。
语法:UTC_TIMESTAMP; UTC_TIMESTAMP()
代码:SELECT UTC_TIMESTAMP,UTC_TIMESTAMP();
样本输出:
mysql> SELECT UTC_TIMESTAMP,UTC_TIMESTAMP();
+---------------------+---------------------+
| UTC_TIMESTAMP | UTC_TIMESTAMP() |
+---------------------+---------------------+
| 2015-04-14 22:52:11 | 2015-04-14 22:52:11 |
+---------------------+---------------------+
1 row in set (0.01 sec)
答
我的解决方案是将触发:
DELIMITER //
CREATE TRIGGER `update_to_utc` BEFORE INSERT ON `my_table` FOR EACH ROW BEGIN
set new.my_field=utc_timestamp();
END//
DELIMITER ;
谢谢你的回复。 @Nehorai。 –
created_at列有timestamp数据类型,默认情况下它被设置为CURRENT_TIMESTAMP,它将获取系统的当前时间。 数据来自UTC格式的API,而created_at将在当地时间。这是我的问题。请建议。 –
解决方案:API将直接发送将在created_at字段中设置的创建日期时间。所以不需要系统生成CURRENT_TIMESTAMP。请建议!提前致谢。 –