SERVER2005 将字符型转日期年月日如 
date
20080206结果
date
2008-02-06怎么样写?
最好的方式 

解决方案 »

  1.   


    select cast('20080206' as datetime)select convert(varchar(10),cast('20080206' as datetime),120)
      

  2.   


    declare @a varchar(10)
    set @a='20080206'
    select left(@a,4)+'-'+substring(@a,5,2)+'-'+right(@a,2)
      

  3.   

    declare @a char(8)
    set @a = '20080206'
    select substring(@a,1,4) + '-'+substring(@a,5,2) +'-'+ substring(@a,7,2)
    ----------
    2008-02-06(1 row(s) affected)
      

  4.   

    select cast(left(date,4)+'-'substring(date,5,2)+'-'+right(date,2) as datetime) from tb
      

  5.   

    select convert(char(10),'20080206',120)
      

  6.   

    1 LOU。我开始也是那么的写的,提示:Msg 8115, Level 16, State 2, Line 1
    将 expression 转换为数据类型 datetime 时出现算术溢出错误。 
      

  7.   

    --先转换为时间
    select convert(char(10),cast('20080206' as datetime),120)
    ---------------
    2008-02-06
      

  8.   


    4 楼
    Msg 8116, Level 16, State 1, Line 1
    参数数据类型 int 对于 substring 函数的参数 1 无效。
      

  9.   

    select convert(varchar(10), convert(datetime, '20080206' ),120)
      

  10.   

    看下这个http://topic.csdn.net/t/20050402/10/3902842.html
      

  11.   

    select convert(varchar(10),cast('20080206' as datetime),120)
      

  12.   

    DECLARE @d VARCHAR(8)
    SET @d='20080206'
    SELECT CONVERT(DATETIME,@d,112)
    2008-02-06 00:00:00.000
    DECLARE @d VARCHAR(8)
    SET @d='20080206'
    SELECT CONVERT(VARCHAR(10),CONVERT(DATETIME,@d,112),120)
    2008-02-06