今天遇到一個日期格式比較奇葩 13-9月 -17 12.00.00.000000000 上午 數據庫存在是這種格式,
查資料發現pgsql日期轉換函數不支持這種格式,
轉換思路:
按長度截取日和年
月份不好截取存在帶有中文字,
月份截取先用split_part()第二個為月份再做替換,
replace(replace(split_part(lxrq,'-',2),'月 ',''),'月','')
具體月份長度有1或10這種長度,用case when判斷下長度
具體如下:
date('20'||substr(lxrq,8,2)||case when replace(replace(split_part(lxrq,'-',2),'月 ',''),'月','')::NUMERIC < 10 then '0'||replace(replace(split_part(lxrq,'-',2),'月 ',''),'月','')
else replace(replace(split_part(lxrq,'-',2),'月 ',''),'月','') end||substr(lxrq,1,2)) as rq,substr(lxrq,1,2)