我想在 UTC 格式的 MySQL 时间戳中添加一个时间间隔。我尝试使用
TIMESTAMPADD(MICROSECOND, 10000000, UTC_TIMESTAMP(3))
。我的假设是计算将采用 UTC,但事实并非如此。例如,如果夏令时发生变化,可能会生成无效时间(请参阅错误报告)。
有没有办法获取 UTC 中的
now
并获取未来 N 秒的 UTC 时间?
它是库的一部分,不幸的是,一些用户在非 UTC 时区运行他们的数据库服务器。
下面显示的是您想要的东西吗?如果没有,您能否提供您所期望的工作示例。
SELECT NOW(), CONVERT_TZ(NOW(), @@session.time_zone, '+00:00'); select NOW()+20, CONVERT_TZ(NOW(), @@session.time_zone, '+00:00')+20;
+---------------------+--------------------------------------------------+
| NOW() | CONVERT_TZ(NOW(), @@session.time_zone, '+00:00') |
+---------------------+--------------------------------------------------+
| 2024-09-02 23:20:10 | 2024-09-02 22:20:10 |
+---------------------+--------------------------------------------------+
1 row in set (0.00 sec)
+----------------+-----------------------------------------------------+
| NOW()+20 | CONVERT_TZ(NOW(), @@session.time_zone, '+00:00')+20 |
+----------------+-----------------------------------------------------+
| 20240902232030 | 20240902222030 |
+----------------+-----------------------------------------------------+
1 row in set (0.00 sec)