2017-04-01 19 views
0

私のSQLサーバはGMTにあり、EST相当のtzを取得する必要があります。GMT時間をESTに変換

何とかESTが間違っています。

select now(),convert_tz(now(),'GMT','EST'),convert_tz(now(),'GMT','EST') - interval 10 minute 

EST時間は午後08時30分でなければならない。ここ

19:30私の結果である -

enter image description here

+3

東部のタイムゾーンの大部分は、現在、東部*夏時間*すなわち「EDT」を観測しています。これは 'America/New_York'のようなタイムゾーン文字列を使うほうが良い理由です。 – ceejayoz

答えて

0

@ceejayozが述べたように、地のタイムゾーンは、に応じて変化します夏時間の観測。さらに、GMTではなく、UTCと呼ぶのが適切です。GMTと呼ばれるときには、サーバーがローカル時間、たとえばロンドン時間に調整されていること、そしてサーバーの時間が別の時間に切り替わることを意味します。夏時間の節約が観察されると、BSTと表示されます。

あなたが通信しようとしていると仮定すると、サーバはUTC時間に設定され、夏時間は観測されず、ほとんどの米国東部の都市で観測された時間に変換したいと仮定します。

SELECT NOW(), 
    CONVERT_TZ(NOW(), 'UTC', 'America/New_York'), 
    CONVERT_TZ(NOW(), 'UTC', 'America/New_York') - INTERVAL 10 MINUTE; 
+1

スラッシュを修正しましたが、 'NOW()'の代わりに 'UTC_TIMESTAMP()'を使用すると、サーバがどのタイムゾーンに設定されているかは関係ありません。 –

+0

GMTは夏時間を観測しません。 GMTとUTCは1秒以内に同じ時間です。夏時間を観測するロンドンのタイムゾーンは、 "Europe/London"と命名されています。 –

関連する問題