2016-06-01 6 views
6

マイテーブル内のマイテーブルには、 '2016/06/01'の形式で日付のフィールドがあります。しかし、私はそれが '2016年6月1日'のフォーマットと調和していないことがわかります。 例としては比較できません。 どちらも文字列です。 私はそれらを調和させ、それらを比較する方法を知りたいです。または、 '2016/06/01'を '2016-06-01'に変更して比較できるようにする方法。ハイブで日付形式を変更するには?

多くのありがとうございます。

+0

良い質問には、問題を解決しようとしたことに関する情報が含まれています。この質問には研究活動が示されていません。「ハイブで日付形式を変更する」というGoogleの検索サイトでさえ、回答者を引き付けるべきではありません。 – Noumenon

+1

@Noumenonあなたはリンクを提供できました。http://www.cloudera.com/documentation/cdh/5-1-x/Impala/Installing-and-Using-Impala/ciiu_datetime_functions.html –

答えて

10

は、あなたが

  1. unix_timestamp(string date, string pattern)コンバート時間文字列(秒)UNIXタイムスタンプに与えられたパターンで

    ハイブ の2つの日付関数を使用する必要があるフォーマットから別のフォーマットの日付文字列を変換するには が失敗した場合は0を返します。
  2. from_unixtime(bigint unixtime[, string format])現在 システムのタイムゾーンにおけるその時点のタイムスタンプを表す文字列に UNIXエポック(1970-01-01 00:00:00)からの秒 数を変換します。

上記の2つの機能を使用すると、目的の結果が得られます。

サンプル入力および出力画像の下から見ることができる。 enter image description here

最終クエリは

TABLE1が私のハイブデータベースに存在するテーブル名である
select from_unixtime(unix_timestamp('2016/06/01','yyyy/MM/dd'),'yyyy-MM-dd') from table1; 

あります。

私はこれがあなたに役立つことを願っています!

2

用途:

unix_timestamp(DATE_COLUMN, string pattern) 

上記のコマンドあなたはSimple Date Functionを使用したいとあなたはフォーマットすることがあり、UNIXタイムスタンプ形式に日付を変換するに役立つだろう。

Date Function

関連する問題