您好,登錄后才能下訂單哦!
這篇文章主要介紹了Hive日期格式如何轉換的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇Hive日期格式如何轉換文章都會有所收獲,下面我們一起來看看吧。
日期計算平時在業務取數時經常涉及到,但是數據庫中經常存放著不同的日期格式,有的存放是時間戳、有的是字符串等,這時需要對其進行轉換才能提取到準確的數據,這里介紹的均是hive里面的函數功能,以下內容均是業務的數據需求經常使用的部分
unix時間戳是從1970年1月1日(UTC/GMT的午夜)開始所經過的秒數,不考慮閏秒,一般為10位的整數
時間戳
字符串日期如:'2021-10-21 19:25:50','2021-10-21 20:25:50.0','2021-10-21 20:25'
時間戳--->正常的日期格式
獲取當前時間戳
select unix_timestamp()
把時間戳轉為正常的日期
select from_unixtime(unix_timestamp(),'yyyy-MM-dd hh:mm:ss') as dt
業務中有時存放的是包含毫秒的整數,需要先轉換為秒
select from_unixtime(cast(create_time/1000 as bigint),'yyyyMMdd') as dt
字符串日期假如數據庫存放的是格式為:"yyyy-MM-dd hh:mm:ss"
截取日期部分
select substr('2021-10-22 17:34:56',1,10) 2021-10-22
字符串強制轉換,獲取日期
select to_date('2021-10-22 17:34:56') 2021-10-22
也可以通過date_format實現
select date_format('2021-10-22 17:34:56','yyyy-MM-dd') 2021-10-22
系統當前日期
當前日期
select current_date(); 2021-10-22
字符串日期與系統當前日期比較,這個在業務中經常有用到
select substr('2021-10-22 17:34:56',1,10)>current_date() false
前一日/昨日
select date_sub(current_date(),1); 2021-10-21
前一日12點/昨日12點在業務中與截取的字符串日期進行比較時用
select concat(date_format(date_sub(current_date(),1),'yyyy-MM-dd'),' ','12'); 2021-10-21 12
最近一個月/30天
select date_sub(current_date(),30); 2021-09-22
當月第一天業務中經常用在滾動計算當月每日的業績數據
select date_format(to_date(trunc(current_date(),'MM')),"yyyy-MM-dd"); 2021-10-01
日期格式轉換 yyyyMMdd--->yyyy-MM-dd
select from_unixtime(unix_timestamp('20211022','yyyyMMdd'),"yyyy-MM-dd"); 2021-10-22
兩個日期相隔天數
select datediff('2021-10-22', '2021-10-01'); 21
關于“Hive日期格式如何轉換”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“Hive日期格式如何轉換”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。