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)

posted @ 2020-07-08 16:05  Young_Mo  阅读(4269)  评论(0编辑  收藏  举报