1、日期数据转为标准格式日期
由于系统对接未约定好日期格式,导致有一批无法转格式的日期存到了数据库中,使用TO_DATE之类的函数都无法转换,只能通过SQL拼接然后更新进行处理。
涉及函数:substr 拼接函数、instr 获取字符位置、lpad 左补位函数
SELECT LEAVE_TIME ,
substr(LEAVE_TIME,0,REGEXP_INSTR(LEAVE_TIME,'/')-1)||'-'||
lpad(SUBSTR(LEAVE_TIME,REGEXP_INSTR(LEAVE_TIME,'/',1)+1,(REGEXP_INSTR(LEAVE_TIME,'/',6)-REGEXP_INSTR(LEAVE_TIME,'/',1)-1)),2,'0')||'-'||
lpad(SUBSTR(LEAVE_TIME,REGEXP_INSTR(LEAVE_TIME,'/',6)+1,(REGEXP_INSTR(LEAVE_TIME,' ',1)-REGEXP_INSTR(LEAVE_TIME,'/',6)-1)),2,'0')||' '||
lpad(SUBSTR(LEAVE_TIME,REGEXP_INSTR(LEAVE_TIME,' ',6)+1,(REGEXP_INSTR(LEAVE_TIME,':',1)-REGEXP_INSTR(LEAVE_TIME,' ',1)-1)),2,'0')||
substr(LEAVE_TIME,REGEXP_INSTR(LEAVE_TIME,':',6)) bingo
FROM TABLE WHERE leave_time IS NOT NULL AND LEAVE_TIME LIKE '%/%';