vertica擷取函式-split_part
阿新 • • 發佈:2018-11-07
最近工作中遇到一個問題:vertica資料庫,開發在入時間資料時格式為CST時間格式,導致檢視資料時非常不方便。想了很久,終於想到了一個臨時解決方案。
vertica的時間轉換函式均不支援轉換(至少todate,datetimestamp不可以,^^)。
資料庫中時間格式如下
開始發現date函式可以將該資料轉換成yyyy-mm-dd,沒有時分秒。
此時想到另外一種想法,就是拼接,原來時間函式中時分秒格式沒有問題,date可以轉換成年月日,兩個資料進行拼接,豈不美哉!
首先獲取時分秒:
使用split_part函式,類似mysql中的substring函式。根據指定分隔符(觀察資料發現此處使用空格為分隔符比較合適),獲取資料。
select createtime,date(createtime),split_part(createtime,' ',4) from table ;
接下來將上圖中的最後兩個欄位拼接起來,看起來就是正常的時間格式了。
select createtime,date(createtime),split_part(createtime,'',4),
to_char(date(createtime),'yyyy-mm-dd'||' '||split_part(createtime,' ',4)) from table;
至此,比較笨拙的轉換完成了,望有更好方法的大俠們積極告知。