大數(shù)據(jù)Spark Sql中日期轉(zhuǎn)換FROM_UNIXTIME和UNIX_TIMESTAMP的使用
眾所周知,數(shù)字整型用來大小比較和計算運算要比字符型快的多,因此部分業(yè)務需要把時間字段轉(zhuǎn)化為整型方便業(yè)務的快速計算和到達,這個整形數(shù)字是選定的日期距UTC時間'1970-01-01 00:00:00'開始的秒數(shù),目前為十位,比如常用來舉例的1234567890,但畢竟數(shù)字不方便觀察,后續(xù)還需要把這些時間數(shù)字轉(zhuǎn)換為真正的時間字段
這里就需要兩個函數(shù)來進行轉(zhuǎn)換UNIX_TIMESTAMP和FROM_UNIXTIME
咱們一一介紹
UNIX_TIMESTAMP
是把時間字段轉(zhuǎn)化為整型,需要注意的是有些數(shù)據(jù)庫需要指明時間字段類型
比如MySQL里是可以直接UNIX_TIMESTAMP('20200223'),而某些大數(shù)據(jù)平臺需要UNIX_TIMESTAMP('20200223','yyyyMMdd')

FROM_UNIXTIME
顧名思義就是從整型里把時間整型進行破解成想要的時間格式,使用時可指定格式

這里面經(jīng)常用到的是UNIX_TIMESTAMP和FROM_UNIXTIME的結(jié)合,比如對一個時間字段進行歸集計算:把'2020-02-23 01:00:02','2020-02-23 01:02:31','2020-02-23 01:03:22'都歸集成'2020-02-23 01:00:00'
select FROM_UNIXTIME(unix_timestamp('20200223')+5*60*floor((substr('2020-02-23
00:01:02',12,2)*60+substr('2020-02-23 00:01:02',15,2))/5)) time1
補充下格式轉(zhuǎn)換:
%a 縮寫星期名 %b 縮寫月名 %c 月,數(shù)值 %D 帶有英文前綴的月中的天 %d 月的天,數(shù)值(00-31) %e 月的天,數(shù)值(0-31) %f 微秒 %H 小時 (00-23) %h 小時 (01-12) %I 小時 (01-12) %i 分鐘,數(shù)值(00-59) %j 年的天 (001-366) %k 小時 (0-23) %l 小時 (1-12) %M 月名 %m 月,數(shù)值(00-12) %p AM 或 PM %r 時間,12-小時(hh:mm:ss AM 或 PM) %S 秒(00-59) %s 秒(00-59) %T 時間, 24-小時 (hh:mm:ss) %U 周 (00-53) 星期日是一周的第一天 %u 周 (00-53) 星期一是一周的第一天 %V 周 (01-53) 星期日是一周的第一天,與 %X 使用 %v 周 (01-53) 星期一是一周的第一天,與 %x 使用 %W 星期名 %w 周的天 (0=星期日, 6=星期六) %X 年,其中的星期日是周的第一天,4 位,與 %V 使用 %x 年,其中的星期一是周的第一天,4 位,與 %v 使用 %Y 年,4 位 %y 年,2 位
到此這篇關(guān)于大數(shù)據(jù)Spark Sql中日期轉(zhuǎn)換FROM_UNIXTIME和UNIX_TIMESTAMP的使用的文章就介紹到這了,更多相關(guān)Spark Sql 日期轉(zhuǎn)換內(nèi)容請搜索本站以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持本站!
版權(quán)聲明:本站文章來源標注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復制或仿造本網(wǎng)站,禁止在非maisonbaluchon.cn所屬的服務器上建立鏡像,否則將依法追究法律責任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學習參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。
關(guān)注官方微信