SQL Server 自定义函数 ft_DateFormats 罗列日期格式化参数和结果

(翻出来以前写的一个函数)

日期格式化参数是魔法数,除了常用的几个根本记不全。看帮助不如直接看结果,一目了然。

IF OBJECT_ID('ft_DateFormats') IS NOT NULL
    DROP FUNCTION ft_DateFormats
GO

CREATE FUNCTION ft_DateFormats (@DATE datetime = NULL)
RETURNS TABLE
AS
RETURN (
    WITH style(style1,style2) AS (
        SELECT t1.number, t2.number
          FROM (
                SELECT number
                  FROM master..spt_values
                 WHERE type = 'p'
                   AND (   number BETWEEN 0 AND 14
                        OR number BETWEEN 20 AND 25
                       )
               ) t1
     FULL JOIN (
                SELECT number
                  FROM master..spt_values
                 WHERE type = 'p'
                   AND (   number BETWEEN 100 AND 114
                        OR number BETWEEN 120 AND 121
                        OR number BETWEEN 126 AND 127
                        OR number BETWEEN 130 AND 131
                       )
               ) t2
            ON t1.number + 100 = t2.number
    )
    SELECT style1, Convert(nvarchar(30), ISNULL(@DATE,GetDate()), style1) AS text1,
           style2, Convert(nvarchar(30), ISNULL(@DATE,GetDate()), style2) AS text2
      FROM style
)
GO


使用举例

SELECT * FROM ft_DateFormats(NULL)


结果

     style1 text1                               style2 text2
----------- ------------------------------ ----------- ------------------------------
          0 04  3 2015 11:24AM                     100 04  3 2015 11:24AM
          1 04/03/15                               101 04/03/2015
          2 15.04.03                               102 2015.04.03
          3 03/04/15                               103 03/04/2015
          4 03.04.15                               104 03.04.2015
          5 03-04-15                               105 03-04-2015
          6 03 04 15                               106 03 04 2015
          7 04 03, 15                              107 04 03, 2015
          8 11:24:27                               108 11:24:27
          9 04  3 2015 11:24:27:873AM              109 04  3 2015 11:24:27:873AM
         10 04-03-15                               110 04-03-2015
         11 15/04/03                               111 2015/04/03
         12 150403                                 112 20150403
         13 03 04 2015 11:24:27:873                113 03 04 2015 11:24:27:873
         14 11:24:27:873                           114 11:24:27:873
         20 2015-04-03 11:24:27                    120 2015-04-03 11:24:27
         21 2015-04-03 11:24:27.873                121 2015-04-03 11:24:27.873
         22 04/03/15 11:24:27 AM                  NULL NULL
         23 2015-04-03                            NULL NULL
         24 11:24:27                              NULL NULL
         25 2015-04-03 11:24:27.873               NULL NULL
       NULL NULL                                   126 2015-04-03T11:24:27.873
       NULL NULL                                   127 2015-04-03T11:24:27.873
       NULL NULL                                   130 14 جمادى الثانية 1436 11:24:27
       NULL NULL                                   131 14/06/1436 11:24:27:873AM


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值