在數據庫的一字段裡日期存的格式為"YYYYMMDD"為NVARCHAR,有可能為空, 現在要將其顯示為YYYY-MM-DD,要如何轉換?

解决方案 »

  1.   

    OrderDate datetime default(CONVERT(varchar(12),getdate(), 102 )),--订单时间
      

  2.   

    declare @tb table (dt varchar(8))
    insert into @tb select '20080105'
    insert into @tb select ''
    insert into @tb select nullselect convert(varchar(10),cast(dt as datetime),120)
    from @tb where isnull(dt,'')<>''2008-01-05
      

  3.   

    declare @tb table (dt varchar(8))
    insert into @tb select '20080105'
    insert into @tb select ''
    insert into @tb select nullselect case when isnull(dt,'')='' then '' else  convert(varchar(10),cast(dt as datetime),120) end as '时间'
    from @tb2008-01-05


      

  4.   

    唉,我怎麼沒想到case,總是找出些1900-01-01的顯示出來。
      

  5.   

    --参考:select convert( varchar(10),cast('20080612' as datetime),120) result/*
    result
    --------
    2008-06-12
    */
      

  6.   


    select cast('20080105' as datetime)
      

  7.   

    用convert函数转换一下就可以了,120的或121都行
      

  8.   

    CONVERT(varchar(12),getdate(), 102)