2014-05-14 16 views
3

我需要計算星期天的平均銷售額。該列salesdate(時間戳)值是:要從蜂巢中的TIMESTAMP得到星期幾

2012-01-01 09:00:00 
2012-01-01 09:00:00 
2012-01-01 09:00:00 
........... 

我已經提取使用TO_DATE(日期部分)現在如何從這個日期在蜂巢獲得工作日(如星期日)? 請指導。

回答

6

可以使用UNIX_TIMESTAMP的組合,和FROM_UNIXTIME的UDF。

from_unixtime(unix_timestamp(col), 'EEEE') 

如果您檢查SimpleDateFormat的文檔,FROM_UNIXTIME用途,你可以看到「EEEE」是一週中的一天的全名的代碼。 「EEE」爲您提供縮寫版本,即「Sun」或「Mon」。

1

到目前爲止,沒有OOTB功能可以實現這一功能。 A ticket雖然開放。

您需要爲此編寫一個UDF。或者,您也可以嘗試使用上述票證提供的補丁。

HTH

0

只是一個建議..你可以用'yyyy-mm-dd'格式取一個較低的日期(低於你的數據中的最小日期),這是一個星期天。使用DATEDIFF()函數查找數據中的日期值('yyyy-mm-dd'格式)與此日期之間的差異。計算datediff輸出的模7。週日爲0,週一爲1,依此類推。