T-SQL转换日期显示格式

一般情况之下,存储日期至数据库中,不必在意它的显示格式,只要是日期即可,在程序中显法时,才会去控制它的显示格式。

但是,当你是开发SQL程序,你要求不了前台程序员按照你的想法去做,把日期显示某种格式,他们只管调用你的存储过程。解决这样的问题,我们把SQL输出结果就控制为最终结果,有关这方面企业内网程式应用较多。

你可以参考下面SQL自定义函数,需要的地方调用即可。

T-SQL转换日期显示格式 View Code
CREATE   FUNCTION   [ dbo ] . [ ConvertDate ]
(
  
@InputDate   DATETIME ,   -- 输入日期,或是原格式日期
   @DateFormat   NVARCHAR ( 10 )   -- 日期显示格式
)
RETURNS   NVARCHAR ( 10 )
AS
BEGIN   
   
DECLARE   @DtFormat    NVARCHAR ( 10 =   @DateFormat
   
IF   CHARINDEX ( ' YYYY ' @DtFormat >   0
      
SET   @DtFormat   =   REPLACE ( @DtFormat ' YYYY ' STR ( YEAR ( @InputDate ),  4 ))
   
ELSE
      
IF   CHARINDEX ( ' YY ' @DtFormat >   0
         
SET   @DtFormat   =   REPLACE ( @DtFormat ' YY ' SUBSTRING ( STR ( YEAR ( @InputDate ),  4 ),  3 2 ))

   
IF   CHARINDEX ( ' MM ' @DtFormat >   0
      
SET   @DtFormat   =   REPLACE ( @DtFormat ' MM ' STR ( MONTH ( @InputDate ),  2 ))

   
IF   CHARINDEX ( ' DD ' @DtFormat >   0
      
SET   @DtFormat   =   REPLACE ( @DtFormat ' DD ' STR ( DAY ( @InputDate ),  2 ))

   
SET   @DtFormat   =   REPLACE ( @DtFormat '   ' ' 0 ' )

   
RETURN   @DtFormat
END

 

实例操作,调用函数:

SELECT   [ dbo ] . [ ConvertDate ]  ( ' 2011/06/30 ' , ' MM/dd/yyyy ' )

 

执行结果:

T-SQL转换日期显示格式

 

你可能感兴趣的:(t-sql)