T-SQL转换日期显示格式

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

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

你可以参考下面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), 32))

   
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')

 

执行结果:

 

posted @ 2011-06-30 13:40  Insus.NET  阅读(823)  评论(0编辑  收藏  举报