Hive日期函式總結(轉學習使用)

2022-09-05 20:09:19 字數 1786 閱讀 3494

一、時間戳函式

1、獲取當前時區的unix時間戳:select unix_timestamp();

2、將指定時間轉為unix時間戳: select unix_timestamp('2012-03-03 11:45:31');

3、將指定的實際轉為貴unix時間戳:select unix_timestamp('2018-08-08 16:22:01','yyyy-mm-dd hh:mm:ss');

二、時間戳轉日期

1、select from_unixtime(1533716521);2018-08-08 16:22:01 

2、select from_unixtime(1533716521,'yyyymmdd'); 20180808

3、select from_unixtime(1533716521,'yyyy-mm-dd hh:mm:ss'); 2018-08-08 16:22:01 

三、獲取系統當前時間

select from_unixtime(unix_timestamp(),'yyyy-mm-dd hh:mm:ss');

四、日期轉換為其他格式的日期

select from_unixtime(unix_timestamp('2018-08-08 16:28:21','yyyy-mm-dd hh:mm:ss'),'yyyymmdd');20180808

3.獲取當前日期:current_date

select current_date ;2018-08-08

4.日期時間轉日期:to_date(string timestamp)

select to_date('2018-08-08 17:12:00') ;2018-08-08

分割槽引數轉日期:

to_date(from_unixtime(unix_timestamp('$','yyyymmdd')))

分割槽引數當月第一天日期:

to_date(from_unixtime(unix_timestamp(concat(substr('$',1,6),'01'),'yyyymmdd')))

5.計算兩個日期之間的天數:datediff

select datediff('2018-08-08','2018-08-01') ; 7

6.日期增加和減少:date_add/date_sub(string startdate,int days)

select date_add('2018-08-04',1) , date_sub('2018-08-04',1) ; 2018-08-05 2018-08-03

7.其他日期函式

查詢當前系統時間(包括毫秒數):` current_timestamp;

查詢當月第幾天: dayofmonth(current_date);

月末: last_day(current_date)

當月第1天: date_sub(current_date,dayofmonth(current_date)-1)

年:year(date)

月:month(date)

日:day(date)

小時:hour(date)

分:minute(date)

秒:second(date)

第幾周:weekofyear(date)

下個月第1天: `add_months(date_sub(current_date,dayofmonth(current_date)-1),1)

Hive日期函式總結

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

hive函式總結 日期函式

獲取當前unix時間戳函式 unix timestamp語法 unix timestamp 返回值 bigint 說明 獲得當前時區的unix時間戳 舉例 hive select unix timestamp from dual ok1455616811 time taken 0.785 secon...

Hive中日期函式總結

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