【任务要求】
merge两张表,
原表的字段apply_date格式为varchar(20),数据为20200118115551,
新表的字段apply_date格式为varchar(20),要求数据显示为2020-01-18 11:55:51。
【思路】
将原表的数据转为date,再转为varchar。
【写法】
merge into 原表table1 t1 using 新表table2 t2 on t1.name = t2.name
update set
t1.name = t2.name,
t1.apply_date = to_char(to_date(t2.apply_date, 'yyyyMMddHH24miss'), 'yyyy-MM-dd HH24:mi:ss')
when not matched then
insert (t1.name, t1.apply_date)
values(
t2.name,
to_char(to_date(t2.apply_date, 'yyyyMMddHH24miss'), 'yyyy-MM-dd HH24:mi:ss')
)
【注意点】
- oracle中format数据转换的语法是to_char、to_date等等
- oracle这时间格式不是yyyy-MM-dd HH:mm:ss这种,而是yyyy-MM-dd HH24:mi:ss,否则会报错