手记

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

 

执行结果:

 

0人推荐
随时随地看视频
慕课网APP