web-dev-qa-db-ja.com

曜日を達成するためのハイブ日付機能

曜日を指定する回避策またはHive日付関数を探しています。

Sunday - 1
Monday - 2
Tuesday - 3
Wednesday - 4
Thursday - 5
Friday - 6
Saturday - 7

要件の詳細:日付文字列(YYYYMMDD)を入力として受け取り、上記の表に従って曜日を出力する関数を探しています。

13
user3279189

from_unixtime(your date,'u')の使用を検討してください-これはMonday=1から始まる曜日を返します。日付がunixtime形式でない場合は、代わりに次を使用できます。

from_unixtime(unix_timestamp('20140112','yyyyMMdd'),'u')

参照: http://docs.Oracle.com/javase/7/docs/api/Java/text/SimpleDateFormat.html 簡単な日付形式のドキュメント。

39
user3731880

Date_format(Hive 1.2)を使用できるようになりました。

Hive> select date_format('2016-12-01' ,'u');
OK
4
14
iggy

select pmod(datediff(your_date,'1900-01-07'),7) + 1 as WeekDay from your_table

  • 任意の開始日が選択されました(1900-01-07)
  • mod 7の曜日を計算します(さらに、ゼロではなく1から開始する場合は1)
10
Peter

Iggyの答えを拡張して、曜日を取得するクエリを次に示します。必要に応じてクエリを調整して、週の最初の曜日を設定します。

SELECT current_date AS `Date`,
       CASE date_format(current_date,'u')
           WHEN 1 THEN 'Mon'
           WHEN 2 THEN 'Tues'
           WHEN 3 THEN 'Wed'
           WHEN 4 THEN 'Thu'
           WHEN 5 THEN 'Fri'
           WHEN 6 THEN 'Sat'
           WHEN 7 THEN 'Sun'
END AS day_of_week
2
user1311888

Hive 2.2からは別の可能性があります。

Hive> select extract(dayofweek FROM your_date) FROM your_table;
0
nessa.gp