字段名:ptime
字段格式:navrchar(50)
字段样式: '20051225082322'现想转换成这样的日期格式:2005-12-25 08:23:22该用哪个函数啊?

解决方案 »

  1.   

    declare @t varchar(20)
    set @t='20051225082322'
    select convert(datetime,left(@t,8)+' '+substring(@t,9,2)+':'+substring(@t,11,2)+':'+right(@t,2),120)
      

  2.   

    declare @s nvarchar(50)
    set @s='20051225082322'
    select @s=cast(left(@s,8)as datetime)+(substring(@s,9,2)+':'+substring(@s,11,2)+':'+right(@s,2))select @s                                                   
    -------------------------------------------------- 
    12 25 2005  8:23AM(所影响的行数为 1 行)
      

  3.   

    declare @s nvarchar(50)
    set @s='20051225082322'
    select @s=cast(left(@s,8)as datetime)+(substring(@s,9,2)+':'+substring(@s,11,2)+':'+right(@s,2))select convert(varchar(18),@s,120)
      

  4.   

    declare @s varchar(100)
    set @s='20051225082322'
    select convert(varchar(10),cast(left(@s,8) as datetime),120)+space(1)+substring(@s,9,2)+':'+substring(@s,11,2)+':'+substring(@s,13,2)                    
    ------------------- 
    2005-12-25 08:23:22(所影响的行数为 1 行)
      

  5.   

    declare @str as varchar(20)
    set @str = '20051225082322'select cast(left(@str,8) + ' ' + substring(@str,9,2) + ':' + substring(@str,11,2) + ':' + substring(@str,13,2) as datetime) riqi /*
    riqi                                                   
    ------------------------------------------------------ 
    2005-12-25 08:23:22.000(所影响的行数为 1 行)
    */
      

  6.   


    declare @temp varchar(100) 
    set @temp= '20051225082322 ' 
    select convert(datetime,convert(varchar(10),cast(left(@s,8) as datetime),120)+space(1)+substring(@s,9,2)+ ':'+substring(@s,11,2)+ ':'+substring(@s,13,2) ,120)