我想将我的php代码中的一些逻辑移到我的mysql查询中,这些查询涉及进行时间和日期计算,这些计算需要始终参考UTC。
在php中,我一直在我的函数中使用ini_set('date.timezone', 'UTC');
来保证一致性。
由于我可能无法始终控制系统时区,因此我使用SET time_zone = 'UTC';
设置了每个连接的时区,这将确保在MySQL查询中使用派生日期的任何地方都将是UTC。
然而,我从documentation或excellent answer by T J Crowder到类似问题的不清楚是否会对此产生影响
ADDDATE() ADDTIME() or DATE_ADD()
即。这些帐户可以根据会话时区进行日光节约,也可以将这些帐户用于夏令时,无论如何。
如果是后者 - 是否可以使用CONVERT_TZ(dt,from_tz,to_tz)
来计算ADDTIME()计算的结果,我们从MySQL系统表中派生出from_tz。
注意: - 我们知道@@global.time_zone, @@session.time_zone return 'SYSTEM'
没有设定时区,因此无法在转换中使用。