sqlserver中将数据为12-May 修改为2012-05形式

来源:互联网 发布:淘宝客可以发展代理吗 编辑:程序博客网 时间:2024/06/16 04:19
总结:1、在对数据进行修改之前一定要备份一下,sqlserver进行备份方式不是create table as的形式而是使用select * into target_tab from source_tab,这一次幸好先进行备份,数据更新有些失误,要的是2012-01这种形式,直接更新成12-012、使用截取函数和oracle不一样,是SUBSTRING函数。3、查询时不需要dual表,这个和GP库比较类似4、百度了很多字符串转换为日期类型,但是都必须是date or timestamp形式,不符合规范,后来有一种思路如下:也是借鉴过来的,但是忘记最初的地址了,只是借鉴了t表的码表数据, 通过使用merger into的方式进行更新(因为update set的话涉及传值,200万数据量比较慢,也比较着急所以也没进行测试)select '20'+SUBSTRING(idl.case_open_month,1,3)+t.num ,case_open_month from (select '01'num,'JAN'str union allselect '02','FEB' union allselect '03','MAR' union allselect '04','APR' union allselect '05','MAY' union allselect '06','JUN' union allselect '07','JUL' union allselect '08','AUG' union allselect '09','SEP' union allselect '10','OCT' union allselect '11','NOV' union allselect '12','DEC')t inner join (select '12-May 'case_open_monthunion allselect '12-Nov 'union all select '12-Jun 'union allselect '12-Dec ')idl on (t.str=SUBSTRING( case_open_month,4,3))

原创粉丝点击