Hive日期函式總結

2021-08-31 07:23:08 字數 1671 閱讀 8856

--1.時間戳函式

--日期轉時間戳:從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-15 14:23:00','yyyy-mm-dd hh:mm:ss');

select unix_timestamp('20170915 14:23:00','yyyymmdd hh:mm:ss'); 

--時間戳轉日期

select from_unixtime(1505456567); 

select from_unixtime(1505456567,'yyyymmdd'); 

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

select from_unixtime(unix_timestamp(),'yyyy-mm-dd hh:mm:ss'); --獲取系統當前時間

--2.獲取當前日期: current_date

hive> select current_date from dual

2017-09-15

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

hive> select to_date('2017-09-15 11:12:00') from dual;

2017-09-15

--3.獲取日期中的年/月/日/時/分/秒/周

with dtime as(select from_unixtime(unix_timestamp(),'yyyy-mm-dd hh:mm:ss') as dt)

select year(dt),month(dt),day(dt),hour(dt),minute(dt),second(dt),weekofyear(dt)

from dtime

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

hive> select datediff('2017-09-15','2017-09-01') from dual;  

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

hive> select date_add('2017-09-15',1) from dual;    

2017-09-16

hive> select date_sub('2017-09-15',1) from dual;    

2017-09-14

--其他日期函式

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

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

月末: last_day(current_date)

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

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

---------------------

原文:

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...

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...