使用をUTCに変換するための任意の他の方法があります。 from_utc_timestamp(タイムスタンプ、文字列のタイムゾーン)
timezone :
for Eastern Time: America/New_York or EST5EDT
for Central Time: America/Chicago or CST6CDT
for Mountain Time: America/Denver or MST7MDT
Phoenix won't observe daylight saving time: America/Phoenix
for Pacific Time: America/Los_Angeles or PST8PDT
for Alaska Time: America/Anchorage or America/Juneau
for Hawaii Time: America/Adak or EST5EDT
Honolulu won't observe day light saving time: Pacific/Honolulu
select from_utc_timestamp('2017-03-11 13:41:22.084','America/Los_Angeles')
2017-03-11 05:41:22.084000000
select from_utc_timestamp('2017-03-12 13:41:22.084','America/Los_Angeles')
2017-03-12 06:41:22.084000000
select from_utc_timestamp('2017-11-03 13:41:22.084','America/Los_Angeles')
2017-11-03 06:41:22.084000000
select from_utc_timestamp('2017-11-04 13:41:22.084','America/Los_Angeles')
2017-11-04 06:41:22.084000000
select from_utc_timestamp('2017-11-05 13:41:22.084','America/Los_Angeles')
2017-11-05 05:41:22.084000000
**Daylight saving time(2017) ends at 2:00 AM on Sunday, November 5**
select from_utc_timestamp('2017-11-05 08:58:00.000','America/Los_Angeles')
2017-11-05 01:58:00 (UTC -7hrs)
select from_utc_timestamp('2017-11-05 08:59:00.000','America/Los_Angeles')
2017-11-05 01:59:00 (UTC -7hrs)
select from_utc_timestamp('2017-11-05 09:00:00.000','America/Los_Angeles')
2017-11-05 01:00:00 (UTC -8hrs)
select from_utc_timestamp('2017-11-05 09:01:00.000','America/Los_Angeles')
2017-11-05 01:01:00 (UTC -8hrs)
これはS.O.ようには見えません。 *答え* - 明示的な結論や勧告はなく、観察のリスト(BTWを読むのは簡単ではない)です。 *(a)*あなたの答えを編集してコードサンプルを 'Code Sample'スタイルでフォーマットできますか? *(b)*根本的な原因を詳述する。 _ "PSTはJava(Hive)とC++(Impala)ではあいまいで解釈が異なる" _(私はそこにあると思います)。 *(c)*回避策を提案しますか? –
from_utc_timestamp( '2017-11-05 13:41:22.084'、 'America/Los_Angeles') これは機能しません。 – vivman
11月5日の2017年のDST変更を追加しました。これはCDH5.7.6で実行され、問題はありません。 –