CONVERT_TZ(dt,from_tz,to_tz)

CONVERT_TZ(dt,from_tz,to_tz)

CONVERT_TZ() は、日付時刻値 dt を、from_tz が指定する時間帯から、to_tz が指定する時間帯に変換し、結果の値を戻します。時間帯は、項4.10.8. 「MySQL サーバのタイム ゾーン サポート」 で説明されているように指定されています。引数が無効な場合、この関数は NULL を戻します。

値が、from_tz から UTC に変換される際に TIMESTAMP でサポートされている範囲から外れた場合、変換は行われません。TIMESTAMP の範囲は 項10.1.2. 「データと時刻タイプの概要」 に記載されています。

mysql> SELECT CONVERT_TZ('2004-01-01 12:00:00','GMT','MET');
        -> '2004-01-01 13:00:00'
mysql> SELECT CONVERT_TZ('2004-01-01 12:00:00','+00:00','+10:00');
        -> '2004-01-01 22:00:00'

注記 :'MET' または 'Europe/Moscow' などの、名前付きの時間帯を使用するには、時間帯テーブルが正確に設定されている必要があります。手順については 項4.10.8. 「MySQL サーバのタイム ゾーン サポート」 をご覧ください。

他のテーブルが LOCK TABLES でロックされている間に CONVERT_TZ() を使用したい場合は、mysql.time_zone_name テーブルもロックする必要があります。