2014-06-16 74 views
0

我有一個蜂巢表所示:分類時間戳爲上午,下午,晚上

create table my_table 
(
my_timestamp String 
) 

my_timestamp是格式YYYY-MM-DD HH:MM:SS的。我需要這個歸類爲以下:

  • 清晨:介於6:01到9:00 AM
  • 上午:9:01至下午12:00
  • 下午:12:01至下午3:00
  • 晚上:3:01 PM至6:00 PM
  • 晚上6:01 PM至05:59 AM。

一種選擇是my_timestamp轉換爲unix_timestamp(),創建另一個unix_timestamp()的清晨,上午等,再減去2 unix_timestamps()給它歸類。

我想知道是否有人可以想到一個更簡單的方法來做到這一點。任何幫助讚賞。

在此先感謝。

+0

即使我沒有使用過Hive,我想我只需要從這裏得到'int hour(string date)'函數:https://cwiki.apache.org/confluence/display/Hive/ LanguageManual + UDF#LanguageManualUDF-DateFunctions和相應的'minute()'函數。 – vefthym

回答

0
select  
case floor(hour(my_timestamp)/3) 
when 2 then 'Early Morning' 
when 3 then 'Morning' 
when 4 then 'Afternoon' 
when 5 then 'Evening' 
else 'Night' 
done 
from my_table 
相關問題