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


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章