曜日を指定する回避策またはHive日付関数を探しています。
Sunday - 1
Monday - 2
Tuesday - 3
Wednesday - 4
Thursday - 5
Friday - 6
Saturday - 7
要件の詳細:日付文字列(YYYYMMDD)を入力として受け取り、上記の表に従って曜日を出力する関数を探しています。
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 簡単な日付形式のドキュメント。
Date_format(Hive 1.2)を使用できるようになりました。
Hive> select date_format('2016-12-01' ,'u');
OK
4
select pmod(datediff(your_date,'1900-01-07'),7) + 1 as WeekDay from your_table
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
Hive 2.2からは別の可能性があります。
Hive> select extract(dayofweek FROM your_date) FROM your_table;