MYSQL需要建议将存储在EST时区数据库中的日期迁移到UTC时区


MYSQL need suggestion to migrate date stored in db in EST Timezone to UTC Timezone

在问问题之前,让我解释一下我的系统的当前生产场景:

我当前的服务器位于: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 中的现有值