将本地TIMESTAMP转换为UTC时间

时间:2011-07-22 18:13:28

标签: mysql convert-tz

我有两张带时间戳的表

TABLE1,当地时间为TIME_STAMP

使用UTC

的TIME_STAMP

TABLE2

我需要做类似

的事情
    select count(*) from TABLE1 where TIME_STAMP > TABLE2.TIME_STAMP

问题是此应用程序将部署在多个时区,因此我无法使用以下

    SELECT CONVERT_TZ(TABLE2.TIME_STAMP,'EST','UTC')

因为“EST”可以是任何时区。

有没有办法获取本地时区代码并将其替换为第二个参数? 或者是否有更好,更直接的方法来解决我的问题?

注意:TABLE1和TABLE2 TIME_STAMPS必须分别保留为本地和UTC,因为它们是我无法控制的外部...

1 个答案:

答案 0 :(得分:10)

以下是我实施的解决方案:

这会将NOW从当地时区转换为UTC
    SELECT CONVERT_TZ( NOW(), @@session.time_zone, '+00:00' )

这会将任何给定的TIMESTAMP字符串从本地时区转换为UTC
    SELECT CONVERT_TZ( "2012-02-14 16:44:36", @@session.time_zone, '+00:00' )