在问问题之前,让我解释一下我的系统的当前生产场景:
我当前的服务器位于:EST,数据库位于:EST。
现在,有一个功能,我们想为客户引入时区支持,因此,作为一项商业决策,我们决定将存储在Mysql中的所有EST数据迁移到UTC。
为什么选择UTC,因为这是我们希望保留在系统中的基准或基准时区,并根据用户的时区将用户数据从UTC转换为特定时区。为了进行转换,我们将使用PHP Datetime类,在那里我们可以传递时区进行转换。
因此,问题是如何将MYSQL EST日期转换为UTC?
注意:MYSQl中当前存储的所有日期均为日期时间格式。
一个SQL查询可能就足够了,假设表名为foo
,列为bar
,那么这个查询就可以了:
UPDATE `foo` SET `bar` = CONVERT_TZ( `bar`, 'EST', 'UTC' );
基于CONVERT_TZ
函数的MySQL文档:
CONVERT_TZ()将日期时间值dt从from_TZ给定的时区转换为to_TZ给定的时区,并返回结果值。
使用CONVERT_TZ()函数更新DB 中的现有值