4

タイムスタンプ付きのテーブルが 2 つあります

TABLE1現地時間の TIME_STAMP を使用

TABLE2UTC の TIME_STAMP を使用

私は何かをする必要があります

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

問題は、このアプリが複数のタイムゾーンに展開されるため、次のものが使用できないことです

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

' EST' はどのタイム ゾーンでもかまいません。

ローカル タイム ゾーン コードを取得し、それを 2 番目の引数として代用する方法はありますか? または、私の問題を解決するためのより良い、より直接的なアプローチはありますか?

注: TABLE1 と TABLE2 の両方の TIME_STAMPS は、私が制御できない外部データであるため、それぞれローカルおよび UTC のままにしておく必要があります...

4

1 に答える 1

17

これが私が実装した解決策です:

これにより、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' )

于 2012-02-14T16:51:18.143 に答える