[转]hive根据日期获取星期几的方法

原文链接
hive原生未提供获取一个日期是星期几的方法,所以只有我们自己编写udf函数提供,udf就不说了,在这里给出了一个使用hive原生函数获取星期几的技巧。

pmod(datediff(#date#, ‘1920-01-01’) – 3, 7)

date#表示给的日期。

输出的结果为0-6的数,分别表示 日,一,二 … 六。

2016-01-01 5
2016-01-02 6
2016-01-03 0

如果想让周一到周六对应数字1-7只需要将查询出来的数据进行判断就行了,如下:

IF(pmod(datediff(#date#, ‘1920-01-01′) – 3, 7)=’0’, 7, pmod(datediff(#date#, ‘1920-01-01’) – 3, 7))

2016-01-01 5
2016-01-02 6
2016-01-03 7

    原文作者:我念东风终不负
    原文地址: https://www.jianshu.com/p/186c919c1b75
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞