私は自分のテーブルにタイムスタンプ列を持っています。私はタイムスタンプ列からdt_skey
という名前の列を派生しています。明確な説明のために、タイムスタンプ列名をtime_column
と仮定してください。これは、time_columnが2017-02-05 03:33:50
、dt_skey
列のように見え、20170205033350
のようなもので、それは間にあるシンボルを削除するだけです。ハイブでタイムスタンプをgmt形式に変換するには
ここで私の質問:time_column
はest timezoneにありますが、私はそれをdt_skey
から派生させている間にgmt形式に変換したいと思います。私がこれをやりたい理由は、インラインでdt_skey
がintデータ型であるため変換されないimpalaを通して、タイムスタンプがgmt形式に変換されることです。私はハイブを介してクエリを実行すると、タイムスタンプとdt_skey
の列が同期するハイブを通して処理を行っています。報告目的と私たちはimpalaを使用するユーザーのため、dt_skey
列を変更したいので、ユーザーがimpalaを調べると両方の列が同期している必要があります。上記のクエリは、この20170202
にこの2017-02-02 07:32:51
を変換します
cast(substr(regexp_replace(cast(time_column as string), '-',''),1,8) as int)as dt_skey
:以下
は、私はタイムスタンプ列のうち、dt_skey
列を導出するために使用していたSQLです。
dt_skey
をGMT形式にオフセットするのを手伝ってください。私はまた、スパークを通じてソリューションを歓迎します。
なぜ「mysql」タグですか?ダッシュを削除すると「2017-02-05」が「20170233」になることは確かですか? –
私のsqlタグは、hiveがかなり多くのSQLクエリを使用しているため、日付はちょうどその間のダッシュを削除されますので、私はちょうど質問を編集してください。ありがとう – Rob