Hive時間格式轉換

2021-10-12 15:49:35 字數 2032 閱讀 8389

原時間格式:2020-09-19 00:15:32

目標格式:20200919

首先使用hive的函式進行轉換

1. to_date(

'2020-09-19 00:15:32')=

=>

2020-09

-192. regexp_replace('2020-09-19'

,'-'

,'')=

=>

20200919

結果語句:

regexp_replace(to_date(

'2020-09-19 00:15:32'),

'-','')

==>

20200919

兩個秒級時間格式進行相減得到分鐘數

原始資料:

2020-09-19 00:12:01

2020-09-19 00:11:46

使用的hive函式為: unix_timestamp :獲取當前時間戳

同時使用的是日期轉時間戳

unix_timestamp(

'2020-09-19 00:12:01'

)- unix_timestamp(

'2020-09-19 00:11:46'

)

當只有乙個引數時 unix_timestamp(string timestame),此時輸入的引數必須為』yyyy-mm-dd hh:mm:ss』格式,否則返回null

select unix_timestamp(『2019-08-15 16:40:00』) --1565858400

select unix_timestamp(『2019-08-15』) --null

當有兩個引數時,此時需要保證兩個引數的對應關係

select unix_timestamp(『2019-08-15』,『yyyy-mm-dd』) --1565798400

select unix_timestamp(『2019-08-15 16:40:00』,『yyyy-mm-dd hh:mm:ss』) --1565858400

select unix_timestamp(『2019-08-15』,『yyyy-mm-dd hh:mm:ss』) --null

最後的結算的結果為:

ceil(

(unix_timestamp(

'2020-09-19 00:12:01'

)- unix_timestamp(

'2020-09-19 00:11:46'))

/60 分鐘數(向上取整)

ceil(

(unix_timestamp(

'2020-09-19 00:12:01'

)- unix_timestamp(

'2020-09-19 00:11:46'))

/60/60 小時數(向上取整)

select datediff(from_unixtime(unix_timestamp(

'20150514'

,'yyyymmdd'),

'yyyy-mm-dd'

),from_unixtime(unix_timestamp(

'20150415'

,'yyyymmdd'),

'yyyy-mm-dd'))

from mid.dual;

結果為:29

select datediff(from_unixtime(unix_timestamp(

'20150514'

,'yyyymmdd'),

'yyyy/mm/dd'

), from_unixtime(unix_timestamp(

'20150415'

,'yyyymmdd'),

'yyyy/mm/dd'))

from mid.dual;

結果為null

hive不支援『/』的日期相減

HIVE 求解時間差 日期格式轉換

閱讀 1 將時間轉換成時間戳 2 將時間戳相減 3 注意單位 分鐘 毫秒 e.x.cast unix timestamp rt.refund ticket time unix timestamp rt.create time 60 as int 30 閱讀 在解析埋點資料時會遇到兩種不同的日期格式 ...

時間格式轉換

一 在mysql中完成 這種方式在mysql查詢語句中轉換,優點是不占用php解析器的解析時間,速度快,缺點是只能用在資料庫查詢中,有侷限性。1.unix時間戳轉換為日期用函式 from unixtime 一般形式 select from unixtime 1156219870 2.日期轉換為uni...

時間格式轉換

dateformat函式語法 g 年代標誌符 y 年m 月 d 日h 時 在上午或下午 1 12 h 時 在一天中 0 23 m 分s 秒 s 毫秒 e 星期 d 一年中的第幾天 f 一月中第幾個星期幾 w 一年中第幾個星期 w 一月中第幾個星期 a 上午 下午 標記符 k 時 在一天中 1 24 ...