hive日期函式

2021-10-10 13:17:56 字數 4203 閱讀 6738

1.獲取到當前日期

hive>

select

current_date()

;ok2020-11

-14time taken: 0.036 seconds, fetched: 1

row(s)

2.獲取到當前日期和時間

hive>

select

current_timestamp()

;ok2020-11

-1409:38:27.674

time taken: 0.044 seconds, fetched: 1

row(s)

3.獲取到當前的時間戳

hive>

select unix_timestamp();

ok1605318195

time taken: 0.041 seconds, fetched: 1

row(s)

4.日期[+時間] --> 時間戳

1.

hive>

desc

function unix_timestamp;

okunix_timestamp(

[date

[, pattern]])

-returns the unix timestamp

time taken: 0.018 seconds, fetched: 1

row(s)

--輸入的日期格式必須為'yyyy-mm-dd hh:mm:ss' ,如不符合則返回null

hive>

select unix_timestamp(

'2020-11-11');

oknull

time taken: 0.058 seconds, fetched: 1

row(s)

--將指定時間字串格式字串轉化成unix時間戳,如不符合則返回null

hive>

select unix_timestamp(

'2020-11-11'

,'yyyy-mm-dd');

ok1605024000

time taken: 0.048 seconds, fetched: 1

row(s)

2.hive>

desc

function to_unix_timestamp;

okto_unix_timestamp(

date

[, pattern])-

returns the unix timestamp

time taken: 0.003 seconds, fetched: 1

row(s)

hive>

select to_unix_timestamp();

failed: semanticexception [error 10015

]: line 1:7 arguments length mismatch 'to_unix_timestamp': the function to_unix_timestamprequires at least one argument..

.用法基本一樣

to_unix_timestamp快一些

5.時間戳 --> 日期

hive>

desc

function from_unixtime;

okfrom_unixtime(unix_time, format)

-returns unix_time in the specified format

time taken: 0.004 seconds, fetched: 1

row(s)

hive>

select from_unixtime(unix_timestamp())

;ok2020-11

-1410:05:31

time taken: 0.461 seconds, fetched: 1

row(s)

hive>

select from_unixtime(unix_timestamp(),

'yyyy-mm-dd');

ok2020-11

-14time taken: 0.041 seconds, fetched: 1

row(s)

6.日期格式化

--以指定的格式顯示我們的日期

date_format(

date

|timestamp

|string, fmt)

e.g.

hive>

select date_format(

current_timestamp()

,'yyyy-mm-dd hh:mm:ss');

ok2020-11

-1321:31:57

select

from_unixtime(unix_timestamp(rpdate,

'yyyymmdd'),

'yyyy-mm-dd'

)from

test.test

7.求兩個 日期(yyyy-mm-dd)的差

datediff(date1, date2)

e.g.

hive>

select datediff(

'2020-07-03'

,'2020-07-02');

ok1

8.常用的

select

from_unixtime(

unix_timestamp(

substring(

'20210111171030',1

,12),

'yyyymmddhhmm'),

'yyyymmddhhmm');

202101111710

select

current_date()

as rpdate,

-- 報表日期日

weekofyear(from_unixtime(unix_timestamp(

current_date()

,'yyyymmdd'),

'yyyy-mm-dd'))

as rpweek,

-- 報表日期周

month

(from_unixtime(unix_timestamp(

current_date()

,'yyyymmdd'),

'yyyy-mm-dd'))

as rpmonth,

-- 報表日期月

floor(substring(

current_date()

,5,2

)/3.1)+1

as rpquarter,

-- 報表日期季

year

(from_unixtime(unix_timestamp(

current_date()

,'yyyymmdd'),

'yyyy-mm-dd'))

as rpyear -- 報表日期年

select

rpdate as rpdate,

-- 報表日期日

weekofyear(from_unixtime(unix_timestamp(rpdate,

'yyyymmdd'),

'yyyy-mm-dd'))

as rpweek,

-- 報表日期周

month

(from_unixtime(unix_timestamp(rpdate,

'yyyymmdd'),

'yyyy-mm-dd'))

as rpmonth,

-- 報表日期月

floor(substring(rpdate,5,

2)/3.1)+

1as rpquarter,

-- 報表日期季

year

(from_unixtime(unix_timestamp(rpdate,

'yyyymmdd'),

'yyyy-mm-dd'))

as rpyear -- 報表日期年

from

test.test

Hive日期函式

hive日期函式 函式用法 含參方式 用法備註 hive日期函式 函式用法 含參方式 用法備註 date2datekey date格式轉換成datekey date2datekey string date time date2datekey 2017 09 01 返回 20170901 date a...

Hive日期函式

1 unix timestamp 2018 12 05 08 45 17 作用 統計從1970年開始到現在的秒數 2 from unixtime 1525509615,yyyymmdd 作用 日期函式unix時間戳轉日期函式 3 to date 2018 12 08 10 08 01 作用 返回日期...

Hive日期函式

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