2014-05-14 19 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,依此类推。