ショータイムはすべてイースタンに保存されており、タイムゾーン設定テーブルのIDがあります。タイムゾーン設定テーブルには、Timezone_id、GMTオフセット、およびタイムゾーン名があります。
GMTオフセットは、+ 6、-4、+ 3.5、-4.5などのように保存されます。
元のタイムゾーンに変換されたshowtimeをプルするクエリを作成しようとしています。私はこのようにやっています。
SELECT Date_format( CONVERT_TZ( CONVERT_TZ(A.START_TIME, '+00:00', '-5:00'),
'+00:00', CONCAT(B.GMT_OFFSET , ':00' )), '%Y-%m-%e %r:%i')
AS 'start_time' from shows A, tz_settings B AND <<JOINS>>;
ここで行っているのは、最初に時刻をETからGMTに変換してから、GMTオフセットを適用することです。
START_TIMEは、「2012-4-23 10:15:00」のような日付形式です。また、もう1つの問題は、「3.5」などの形式を「3.30」に変換してConvert_TZに渡すことです。
編集:テーブル構造。主なフィールド。
shows: 'id', 'show_name', 'stat_time', 'tz_id'
tz_settings: 'tz_id', 'gmt_offset','tz_name'
何か案は?他の機能はミックスに役立ちますか?