2017-07-13 11 views
0

私はBIGINTの問い合わせがタイムスタンプに加え、値が「1494257400」presto from_unixtime関数が正しいですか?

である私はプレストクエリ を使用しますが、プレストはFROM_UNIXTIME()関数の結果を収集していません。

ハイブバージョン。

select from_unixtime(1494257400) result : '2017-05-09 00:30:00'

プレストバージョン。

BLOCKQUOTE

select from_unixtime(1494257400) result : '2017-05-08 08:30:00'

ハイブは、収集結果を与えたが、プレストは、結果を収集されていません。どのように私はそれについて解決することができますか?

答えて

1

presto from_unixtimeは、Hiveからの時刻があなたのローカルタイムゾーンの日付を返すときにUTCで日付を返します。 https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDFによれば

from_unixtime

は におけるその瞬間のタイムスタンプを表す文字列にUNIXエポック(1970年1月1日0時00分00秒 UTC)からの秒数に変換します現在のシステムのタイムゾーンを "1970-01-01 00:00:00"の形式で返します。

ISO形式の文字列は、GMT + 00以外のものがあればGMTデータを表示する必要があるため、Hiveの出力はあまり良くありません。

ハイブを使用すると、to_utc_timestamp({any primitive type} ts, string timezone)を使用して、タイムスタンプを適切なタイムゾーンに変換できます。上にリンクがあるマニュアルを見てください。

+0

thx ...私はそれを理解しています。 しかし、私はどのように私は同じ結果を受信するためにクエリを変更することができません..; _; .. あなたは私にサンプルのprestoクエリを教えてくれませんか? –

+1

私の答えは – Fabien

+0

to_utc_timestampに更新されました。 –

関連する問題