2008-1-1转换成20080101 按照这样写select convert(varchar(8),cast('2008-1-1' as datetime),112)会报错 出现从字符串向 datetime 转换时失败。 
 

解决方案 »

  1.   

    select convert(varchar(8),cast('2008-1-1' as datetime),112) 
    --20080101
      

  2.   

    select convert(varchar(8),cast('2008-1-1' as datetime),112) 
    /*
             
    -------- 
    20080101(所影响的行数为 1 行)
    */或者你的表中存在非法的时间格式,建议你给出数据来.
      

  3.   

    declare @date datetime
    set @date='2008-1-1'
    select convert(nvarchar(10),@date,112)
      

  4.   

    declare @date datetime
    set @date='2008-1-1'
    select convert(nvarchar(10),@date,112)20080101
      

  5.   

    是不是列里有非法数值?
    SELECT DATE FROM TB WHERE ISDATE(DATE)=0
    看看
      

  6.   

    SQL codeselectconvert(varchar(8),cast('2008-1-1'asdatetime),112)--20080101顶一个!