日期:2014-05-17  浏览次数:20682 次

请教SQL批量修改数据库语句
批量修改数据库语句:
比如:“2013-11-25 15:41:14:335”
把最后一个“:”改为“.”

不知道SQL语句怎么写?急用

------解决方案--------------------

select stuff('2013-11-25 15:41:14:335',20,1,',')


------------------------
2013-11-25 15:41:14,335

(1 行受影响)

update a set 字段=stuff(字段,20,1,',') from 表 a



------解决方案--------------------
UPDATE 表 set 字段=convert(datetime,stuff(convert(varchar(50),字段,121),20,1,'.'))

------解决方案--------------------
引用:
Quote: 引用:

Quote: 引用:

Quote: 引用:

批量修改数据库语句:
比如:“2013-11-25 15:41:14:335”
把最后一个“:”改为“.”

不知道SQL语句怎么写?急用


可能我没说太清楚吧,这个“:”的位置并不固定,因为“:”后面不一定是3位,“:”前也不一定是19个字符,因为前面的日期的月份和日有可能是1位,如“2013-1-2”


这样吗:

declare @v varchar(50)
 
set @v = '2013-11-25 15:41:14:335'
 
select reverse(stuff(REVERSE(@v),charindex(':',REVERSE(@v)),1,'.'))
/*
2013-11-25 15:41:14.335
*/



是这个意思!!!再问一下,要批量次改怎么写?我要修改的字段是“CreateTime”


可以这样试试:



update 表
set CreateTime = reverse(stuff(REVERSE(CreateTime),charindex(':',REVERSE(CreateTime)),1,'.'))


------解决方案--------------------

update tb
set createtime=REPLACE(SUBSTRING(REVERSE(createtime),PATINDEX('%:%',REVERSE(createtime))-1,1),':','.')