SQL 时间字段替换(STUFF函数 )

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

猜你喜欢

转载自blog.csdn.net/xuexihao1234/article/details/127184179