select cast(year(@date) as varchar(4)) + '年'+
       cast(month(@date) as varchar(2))+'月'+
       cast(day(@date) as varchar(2)) +'日'

解决方案 »

  1.   

    stuff(stuff(stuff(convert(varchar(11),@dt,120),11,0,'日'),8,0,'月'),5,0,'年')
      

  2.   

    select datename(year,@dt)+'年'+datename(month,@dt)+'月'+datename(day,@dt)+'日'
      

  3.   

    select datepart(year,@date) + '年'+
           datepart(month,@date)+'月'+
           datepart(day,@date) +'日'
      

  4.   

    select datename(year,@date) + '年'+
           datename(month,@date)+'月'+
           datename(day,@date) +'日'
      

  5.   

    select datename(year,@date)+'年'+datename(month,@date)+'月'+datename(day,@date)+'日'
      

  6.   

    实践出真知你这样:
    select cast(year(@date) as varchar(4)) + '年'+
           cast(month(@date) as varchar(2))+'月'+
           cast(day(@date) as varchar(2)) +'日'
    union all
    select cast(year(@date) as varchar(4)) + '年'+
           cast(month(@date) as varchar(2))+'月'+
           cast(day(@date) as varchar(2)) +'日'

    union all
    select cast(year(@date) as varchar(4)) + '年'+
           cast(month(@date) as varchar(2))+'月'+
           cast(day(@date) as varchar(2)) +'日'
    100个
    运行一下看看时间然后再
    select stuff(stuff(stuff(convert(varchar(11),@dt,120),11,0,'日'),8,0,'月'),5,0,'年')
    union all
    select stuff(stuff(stuff(convert(varchar(11),@dt,120),11,0,'日'),8,0,'月'),5,0,'年')

    union all
    select stuff(stuff(stuff(convert(varchar(11),@dt,120),11,0,'日'),8,0,'月'),5,0,'年')
    也100个你自己比较吧
      

  7.   

    在30万行的表上作了一下测试(日期字段上有索引),上面三种方法效率差不多,第一次执行十几秒,第二次几秒
    cast效率稍稍好于stuff、stuff效率稍稍好于datename