<>STUFF函数介绍
1、作用:
STUFF函数:
删除指定长度的字符并在指定的起始点插入另一组字符。
2、函数语法:
STUFF ( character_expression , start , length ,character_expression2 )
3、参数释义:
character_expression (由字符数据组成的表达式 。可以是常量、变量,也可以是字符或二进制数据的列):将要处理的字符串。
start(是一个整形值,如果 start 或 length 是负数,则返回空字符串。如果 start 比第一个character_expression
长,则返回空字符串):指定删除和插入的开始位置。 字符串是从1开始,如果要从第二个字符删除,则start为2。
length是一个整数,指定要删除的字符数。如从第二个字符开始删除,删除三个字符,则length为3。如果 length 比第一个
character_expression 长,则最多删除到最后一个 character_expression 中的最后一个字符。
character_expression2 L用来替换删除字符串的字符串。
备注:如果开始位置或长度值是负数,或者如果开始位置大于第一个字符串的长度,将返回空字符串。如果要删除的长度大于第一个字符串的长度,将删除到第一个字符串中的第一个字符。
如果结果值大于返回类型支持的最大值,则报错。
4、举例:
(1)如将要处理的字符串character_expression是’abcdef’,想删除掉’cde’,则stuff函数的写法为
stuff(‘abcdef’,3,3,‘’);
如果想把’cde’替换为’xyz’,则stuff函数的写法为
stuff(‘abcdef’,3,3,‘xyz’);
<>时间字段替换
1、修改表A日期字段的年份
update A set
operatordate=STUFF(convert(nvarchar(23),operatordate,120),1,4,'2012') from
table A
2、修改表A日期字段的月份
update A set
operatordate=STUFF(convert(nvarchar(23),operatordate,120),6,2,'3') from table A
3、修改表A日期字段的天数
update A set
operatordate=STUFF(convert(nvarchar(23),operatordate,120),9,2,'25') from table A
4、修改表A日期字段的小时数
update A set operatdate
=STUFF(convert(nvarchar(23),operatordate,120),12,2,'9') from table A
5、修改表A日期字段的分钟数
update A set operatdate
=STUFF(convert(nvarchar(23),operatordate,120),15,2,'15') from table A
6、修改表A日期字段的秒数
update A set operatdate
=STUFF(convert(nvarchar(23),operatordate,120),18,2,'30') from table A
7、修改表A日期字段的年份、小时
update A set
operatordate=Convert(datetime,stuff(STUFF(Convert(char,operatordate,120), 1,4,
'2011'),12,2, '02')) from table A