hive關於時間函式的用法

2021-08-21 03:03:23 字數 2288 閱讀 8711

做資料探勘的,離不開使用各種時間函式。

為了避免遺忘,以及後續各種抓瞎到處亂找,特意總結了hive中大部分常用的時間函式,方便自己也方便他們。

1.unix_timestamp()

返回當前時區的unix時間戳

返回型別:bigint

hive (tmp)> select unix_timestamp() from hive_sum limit 1;

1465875016

2.from_unixtime(bigint unixtime[,string format])

時間戳轉日期函式

返回型別:string

hive (tmp)> select from_unixtime(unix_timestamp(),』yyyymmdd』) from hive_sum limit 1;

20160614

3.unix_timestamp(string date)

返回指定日期格式的的時間戳

返回型別:bigint

注意:如果後面只有date引數,date的形式必須為』yyyy-mm-dd hh:mm:ss』的形式。

hive (tmp)> select unix_timestamp(『2016-06-01』) from hive_sum limit 1;

null

hive (tmp)> select unix_timestamp(『2016-06-01 00:00:00』) from hive_sum limit 1;

1464710400

4.unix_timestamp(string date,string pattern)

返回指定日期格式的時間戳

返回型別:bigint

hive (tmp)> select unix_timestamp(『2016-06-01』,』yyyymmdd』) from hive_sum limit 1;

1449331200

5.to_date(string date)

返回時間欄位中的日期部分

返回型別:string

hive (tmp)> select to_date(『2016-06-01 00:00:00』) from hive_sum limit 1;

2016-06-01

6.year(string date)

返回時間欄位中的年

返回型別:int

hive (tmp)> select year(『2016-06-01 00:00:00』) from hive_sum limit 1;

2016

7.month(string date)

返回時間欄位中的月

返回型別:int

hive (tmp)> select month(『2016-06-01』) from hive_sum limit 1; 6

8.day(string date)

返回時間欄位中的天

返回型別:int

hive (tmp)> select day(『2016-06-01』) from hive_sum limit 1; 1

9.weekofyear(string date)

返回時間欄位是本年的第多少周

返回型別:int

hive (tmp)> select weekofyear(『2016-06-01』) from hive_sum limit 1; 22

10.datediff(string enddate,string begindate)

返回enddate與begindate之間的時間差的天數

返回型別:int

hive (tmp)> select datediff(『2016-06-01』,』2016-05-01』) from hive_sum limit 1; 31

11.date_add(string date,int days)

返回date增加days天後的日期

返回型別:string

hive (tmp)> select date_add(『2016-06-01』,15) from hive_sum limit 1;

2016-06-16

12.date_sub(string date,int days)

返回date減少days天後的日期

返回型別:string

hive (tmp)> select date_sub(『2016-06-01』,15) from hive_sum limit 1;

2016-05-17

來自:

hive中的udf時間函式用法

1 from unixtime函式 用法為將時間戳轉換為時間格式 語法 from unixtime bigint unixtime string format 返回值為string 例如 hive select from unixtime 1326988805,yyyymmddhh from tes...

hive中時間 日期函式的用法

current date 獲取當前日期 用法 select current date 輸出 2020 12 04 unix timestamp 獲取當前unix時間戳 用法 select unix timestamp 輸出 1607070544 date add 返回日期的後n天的日期 例 返回當前...

Hive 時間函式

to date 日期時間轉日期函式select to date 2015 04 02 13 34 12 輸出 2015 04 02from unixtime 轉化unix時間戳到當前時區的時間格式select from unixtime 1323308943,yyyymmdd 輸出 20111208...