请教200708011145(varchar类型)怎么转换成2007-08-01 11:45(datetime类型)谢谢!

解决方案 »

  1.   

    declare @s as varchar(20)
    set @s = '200708011145'select cast(left(@s , 4) + '-' + substring(@s,5,2) + '-' + substring(@s,7,2) + ' ' + substring(@s , 9,2) + ':' + right(@s,2) as datetime)
      

  2.   

    convert(datetime,left(字段名,4)+'-'+substring(字段名,5,2)+'-'+substring(字段名,7,2)+ ' '+substring(字段名,9,2) + ':' + right(字段名,2))
      

  3.   

    谢谢!dawugui(潇洒老乌龟) 老兄的提示,执行时提示:从 char 数据类型到 datetime 数据类型的转换导致 datetime 值越界。
      

  4.   

    DECLARE @A CHAR(20)
    SET @A='200708011145' 
    SELECT DATEADD(MI,RIGHT(RTRIM(@A),2)+SUBSTRING(@A,9,2)*60,LEFT(@A,8))
      

  5.   

    没错.declare @s as varchar(20)
    set @s = '200708011145'select cast(left(@s , 4) + '-' + substring(@s,5,2) + '-' + substring(@s,7,2) + ' ' + substring(@s , 9,2) + ':' + right(@s,2) as datetime) as time/*
    time                                                   
    ------------------------------------------------------ 
    2007-08-01 11:45:00.000(所影响的行数为 1 行)
    */
      

  6.   

    declare @t varchar(50)
    set @t='200708011145'
    set @t=substring(@t,1,8)+' '+substring(@t,8,2)+':'+substring(@t,10,2)
    select cast(@t as datetime)
    -----------------------
    2007-08-01 11:14:00.000