Hiveで日付形式を変更するにはどうすればいいですか? 質問する

Hiveで日付形式を変更するにはどうすればいいですか? 質問する

Hive のテーブルには、「2016/06/01」という形式の日付フィールドがあります。しかし、このフィールドは「2016-06-01」という形式とは一致していません。たとえば、比較することはできません。どちらも文字列です。したがって、これらを一致させて比較できるようにする方法を知りたいです。または、逆に、「2016/06/01」を「2016-06-01」に変更して比較できるようにする方法を知りたいです。

どうもありがとう。

ベストアンサー1

日付文字列をある形式から別の形式に変換するには、Hiveの2つの日付関数を使用する必要があります。

  1. unix_timestamp(string date, string pattern)指定されたパターンの時刻文字列を Unix タイムスタンプ (秒単位) に変換し、失敗した場合は 0 を返します。
  2. from_unixtime(bigint unixtime[, string format])Unix エポック (1970-01-01 00:00:00 UTC) の秒数を、現在のシステム タイム ゾーンのその瞬間のタイムスタンプを表す文字列に変換します。

上記の 2 つの機能を使用すると、目的の結果を達成できます。

サンプルの入力と出力は以下の画像から確認できます。ここに画像の説明を入力してください

最後の質問は

select from_unixtime(unix_timestamp('2016/06/01','yyyy/MM/dd'),'yyyy-MM-dd') from table1; 

ここで、table1 は Hive データベースに存在するテーブル名です。

これがお役に立てば幸いです!!!

おすすめ記事