我的数据库是sqlserver 在数据库中怎么用sql语句把这一列转换成日期格式 ??新手求助

解决方案 »

  1.   


    declare @str varchar(30)
    set @str='200901011657'
    select cast(stuff(stuff(stuff(stuff(@str,11,0,':'),9,0,' '),7,0,'-'),5,0,'-')+':00' as datetime)
      

  2.   

    declare @s varchar(20)
    select @s = '200901011657'select dateadd(mi,SUBSTRING (@s,9,2) * 60 + right(@s,2),cast(left(@s,8) as datetime))
                                                           
    ------------------------------------------------------ 
    2009-01-01 16:57:00.000(所影响的行数为 1 行)
      

  3.   

    select substring('200901011657',1,4) + '-' +
           substring('200901011657',5,2) + '-' +
           substring('200901011657',7,2) + ' ' +
           substring('200901011657',9,2) + ':' +
           substring('200901011657',11,2)
    /*
                                 
    ---------------------------- 
    2009-01-01 16:57(所影响的行数为 1 行)
    */select substring('200901011657',1,4) + '-' +
           substring('200901011657',5,2) + '-' +
           substring('200901011657',7,2) + ' ' +
           substring('200901011657',9,2) + ':' +
           substring('200901011657',11,2) + ':' + '00'
    /*
                                    
    ------------------------------- 
    2009-01-01 16:57:00(所影响的行数为 1 行)
    */select cast(substring('200901011657',1,4) + '-' +
           substring('200901011657',5,2) + '-' +
           substring('200901011657',7,2) + ' ' +
           substring('200901011657',9,2) + ':' +
           substring('200901011657',11,2) + ':' + '00' as datetime)
    /*
                                    
    ------------------------------- 
    2009-01-01 16:57:00(所影响的行数为 1 行)                                                       
    ------------------------------------------------------ 
    2009-01-01 16:57:00.000(所影响的行数为 1 行)
    */