例如 2011-11-25 格式后: 2011年11月25日 请问sql里面怎么达到这样的效果

解决方案 »

  1.   

    datepart获取年月日然后拼出来
      

  2.   

    有个转换 方法  叫Form什么的 记不太清出了 
      

  3.   

    http://www.cnblogs.com/SpringNumb/articles/1882271.html
      

  4.   

    --通用的日期转换函数
    CREATE FUNCTION dbo.fnFormatDate (@Datetime DATETIME, @FormatMask VARCHAR(32))
    RETURNS VARCHAR(32)
    AS
    BEGIN
    DECLARE @StringDate VARCHAR(32)SET @StringDate = @FormatMaskIF (CHARINDEX ('YYYY',@StringDate) > 0)SET @StringDate = REPLACE(@StringDate, 'YYYY',DATENAME(YY, @Datetime))IF (CHARINDEX ('YY',@StringDate) > 0)SET @StringDate = REPLACE(@StringDate, 'YY',RIGHT(DATENAME(YY, @Datetime),2))IF (CHARINDEX ('Month',@StringDate) > 0)SET @StringDate = REPLACE(@StringDate, 'Month',DATENAME(MM, @Datetime))IF (CHARINDEX ('MON',@StringDate COLLATE SQL_Latin1_General_CP1_CS_AS)>0)SET @StringDate = REPLACE(@StringDate, 'MON',LEFT(UPPER(DATENAME(MM, @Datetime)),3))IF (CHARINDEX ('Mon',@StringDate) > 0)SET @StringDate = REPLACE(@StringDate, 'Mon',LEFT(DATENAME(MM, @Datetime),3))IF (CHARINDEX ('MM',@StringDate) > 0)SET @StringDate = REPLACE(@StringDate, 'MM',RIGHT('0'+CONVERT(VARCHAR,DATEPART(MM, @Datetime)),2))IF (CHARINDEX ('M',@StringDate) > 0)SET @StringDate = REPLACE(@StringDate, 'M',CONVERT(VARCHAR,DATEPART(MM, @Datetime)))IF (CHARINDEX ('DD',@StringDate) > 0)SET @StringDate = REPLACE(@StringDate, 'DD',right('0'+DATENAME(DD, @Datetime),2))IF (CHARINDEX ('D',@StringDate) > 0)SET @StringDate = REPLACE(@StringDate, 'D',DATENAME(DD, @Datetime)) RETURN @StringDateEND
    GOselect dbo.fnFormatDate(getdate(),'YYYY年MM月DD日')2011年11月25日