请问,怎么样才能使数据库中的varchar 转换成datetime 类型的?
我convert 使用后,它告诉我数据溢出

解决方案 »

  1.   

    declare @t varchar(10)
    set @t='2005-5-5'
    select cast(@t as datetime )
    select convert(datetime,@t)
      

  2.   

    select datediff(s,convert(datetime,Col006),convert(datetime,Col006))
    from [联通话单]
      

  3.   

    Col006和Col005的类型为varchar 类型
      

  4.   

    Col006和Col005的类型为varchar 类型
    ----------------------------
    可能是varchar 的长度不够!试一下将其设为varchar(50)
      

  5.   

    20060712053020 这样的数据本来就是datetime 导出数据库的,再导入数据库就变成了varchar类型了
      

  6.   

    declare @t varchar(2000)
    set @t='20060712053020'
    select cast(STUFF(STUFF(left(@t,8),5,0,'-'),8,0,'-') +' '+STUFF(STUFF(right(@t,6),3,0,':'),6,0,':') as datetime)
      

  7.   


    declare @a varchar(20)
    set @a='20060712053020'
    select convert(datetime,substring(@a,1,4)+'/'+substring(@a,5,2)+'/'+substring(@a,7,2)+' '+substring(@a,9,2)+':'+substring(@a,11,2)+':'+substring(@a,13,2))/*
    2006-07-12 05:30:20.000
    */
      

  8.   

    declare @s varchar(200)
    set @s = '20060712053020'
    select substring(@s , 1,4) + '-' + substring(@s , 5 , 2)  + '-' +substring(@s , 7 , 2) + ' ' + substring(@s,9,2) + ':' + substring(@s , 11 , 2) +':' + substring(@s,13,2)
      

  9.   

    select cast(substring(@s , 1,4) + '-' + substring(@s , 5 , 2) + '-' +substring(@s , 7 , 2) + ' ' + substring(@s,9,2) + ':' + substring(@s , 11 , 2) +':' + substring(@s,13,2) as 
    datetime)