sql处理字符串:截取子串等 substr,charindex

 

    删除形如2008/09/02:0:00:000 的date time中间的:号

  1. set ANSI_NULLS ON
  2. set QUOTED_IDENTIFIER ON
  3. GO
  4. ALTER PROCEDURE [dbo].[SP_Date_Delete]
  5. @olddate varchar(30)='2008/9/8:0:0:00',
  6. @newdate   varchar(30) output
  7.  AS 
  8. DECLARE @i int
  9. DECLARE @k int
  10. DECLARE @flag int
  11. DECLARE @count int
  12. SET @i=0
  13. SET @k=0
  14. SET @flag=1
  15. SET @count=0
  16. SELECT @i=CHARINDEX(':',@olddate)
  17. if @i!=0
  18.   BEGIN
  19.     WHILE @flag=1
  20.       BEGIN
  21.          SELECT @k=CHARINDEX(':',@olddate,@k)
  22.          if @k=0 set @flag=0
  23.          else 
  24.            begin 
  25.              set @k=@k+1
  26.              set @count=@count+1
  27.            end
  28.       END
  29.   END
  30. if @count<=2 
  31.   begin
  32.     set @newdate = @olddate
  33.   end
  34. else 
  35.    begin
  36.      /************************************************************************/
  37.      set @newdate = SUBSTRING(@olddate,0,@i)+' '+SUBSTRING(@olddate,@i+1,len(@olddate)-@i)
  38.    end
  39. print @newdate
  40. update dir_listing set create_dt = @newdate where listing_id=52657
  41. select @newdate

你可能感兴趣的:(sql,Date,delete)