参考:-- 2006-8-1 12:39:49怎么换成20060801123949啊? 
DECLARE @DT DATETIME
SELECT @DT='2006-8-1 12:39:49'
SELECT CONVERT(VARCHAR(8),@DT,112) + REPLACE(CONVERT(VARCHAR(10),@DT,108),':','')
GO-- 20060906102147一个varchar类型的如何转换为2006-09-06 10:21:47呢?
create function fstrtodatetime(@str varchar(20))
    returns datetime
as
begin
    set @str=substring(@str,1,4) + '-' + substring(@str,5,2) + '-' + substring(@str,7,2) + ' ' 
            +substring(@str,9,2) + ':' + substring(@str,11,2)+ ':' + substring(@str,13,2)    return cast(@str as datetime)
end
goselect dbo.fstrtodatetime('20060801123949')drop function fstrtodatetime

解决方案 »

  1.   

    学会了,非常的不错!经测试OK!顺便问一下,如果有要将一列的值这样改!
    select dbo.fstrtodatetime('20060801123949')这一句应该如何改?循环吗?谢谢了! 5分钟后结贴!非常感谢 [YiZhiNet(九斤半)]
      

  2.   

    select *,dbo.fstrtodatetime([字段名]) from [tablename]
      

  3.   

    str=substring(str,1,4) + '-' + substring(str,5,2) + '-' + substring(str,7,2) + ' ' 
                +substring(str,9,2) + ':' + substring(str,11,2)+ ':' + substring(str,13,2)
      

  4.   

    再次非常感谢 [YiZhiNet(九斤半)]