hive 時間函式 總結

2021-07-13 11:49:37 字數 1783 閱讀 2074

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

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

返回當前時區的unix時間戳

返回型別:bigint

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

1465875016

時間戳轉日期函式

返回型別:string

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

20160614

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

返回型別: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

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

返回型別:bigint

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

1449331200

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

返回型別:string

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

2016-06-01

返回時間欄位中的年

返回型別:int

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

2016

返回時間欄位中的月

返回型別:int

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

6返回時間欄位中的天

返回型別:int

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

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

返回型別:int

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

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

返回型別:int

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

31返回date增加days天後的日期

返回型別:string

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

2016-06-16

返回date減少days天後的日期

返回型別:string

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

2016-05-17

hive中的時間函式總結

日期轉時間戳 從1970 01 01 00 00 00 utc到指定時間的秒數 select unix timestamp 獲得當前時區的unix時間戳 select unix timestamp 2017 09 15 14 23 00 select unix timestamp 2017 09 1...

Hive 時間函式

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

hive時間函式

語法 from unixtime bigint unixtime stringformat 返回值 string 說明 轉化unix時間戳 從1970 01 0100 00 00 utc到指定時間的秒數 到當前時區的時間格式 舉例 select from unixtime 1323308943,yy...