postgres日期格式转换
今天遇到一个日期格式比较奇葩 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)