我需要计算星期天的平均销售额。该列salesdate(时间戳)值是:要从蜂巢中的TIMESTAMP得到星期几
2012-01-01 09:00:00
2012-01-01 09:00:00
2012-01-01 09:00:00
...........
我已经提取使用TO_DATE(日期部分)现在如何从这个日期在蜂巢获得工作日(如星期日)? 请指导。
我需要计算星期天的平均销售额。该列salesdate(时间戳)值是:要从蜂巢中的TIMESTAMP得到星期几
2012-01-01 09:00:00
2012-01-01 09:00:00
2012-01-01 09:00:00
...........
我已经提取使用TO_DATE(日期部分)现在如何从这个日期在蜂巢获得工作日(如星期日)? 请指导。
可以使用UNIX_TIMESTAMP的组合,和FROM_UNIXTIME的UDF。
from_unixtime(unix_timestamp(col), 'EEEE')
如果您检查SimpleDateFormat的文档,FROM_UNIXTIME用途,你可以看到“EEEE”是一周中的一天的全名的代码。 “EEE”为您提供缩写版本,即“Sun”或“Mon”。
只是一个建议..你可以用'yyyy-mm-dd'格式取一个较低的日期(低于你的数据中的最小日期),这是一个星期天。使用DATEDIFF()函数查找数据中的日期值('yyyy-mm-dd'格式)与此日期之间的差异。计算datediff输出的模7。周日为0,周一为1,依此类推。