sql获取月份中的天数代码金沙js娱乐场官方网站,启发点也是从获取二月份天数的CASE函数想起的

用户需要传入年份,sql获取月份中的天数代码,DaysInMonth,是获取月份的天数的自定义函数,如果你已经有引过Insus.NET那个获取二月份天数的自定义函数

CREATE FUNCTION [dbo].[udf_DaysInMonth] ( @Date DATETIME )
RETURNS INT AS BEGIN RETURN CASE WHEN MONTH(@Date) IN
(1,3,5,7,8,10,12) THEN 31 WHEN MONTH(@Date) IN (4,6,9,11) THEN 30 ELSE
[dbo].[DaysOfFebruary](YEAR(@Date)) END END

如下: 复制代码 代码如下: CREATE FUNCTION
[dbo].[udf_DaysInMonth] ( @Date DATETIME ) RETURNS INT AS BEGIN
DECLARE @dim AS TABLE (M INT,Dy INT) INSERT INTO @dim VALUES
(1,31),(3,31),(5,31),(7,31),(8,31),(10,31),(12,31),
(4,30),(6,30),(9,30),(11,30), (2, CASE WHEN (YEAR(@Date) % 4 = 0 AND
YEAR(@Date) % 100 0) OR (YEAR(@Date) % 400 = 0) THEN 29 ELSE 28 END )
DECLARE @RValue INT SELECT @RValue = [Dy] FROM @dim WHERE [M] =
MONTH(@DateState of Qatar RETU君越N @哈弗Value END GO
获取月份天数,曾在博客上也是有写过,不过它只是获得一月份的时局。链接如下:
现第一眼看到专案中那一个函数,总觉它写得非常不够好的以为到,是还是不是能把它改写得更加好些,启示点也是从获取四月份天数的CASE函数想起的。
因而,作者尝试改了,如下: 复制代码
代码如下: CREATE FUNCTION [dbo].[udf_DaysInMonth] ( @Date DATETIME
卡塔尔(قطر‎ RETUTiguanNS INT AS BEGIN RETU普拉多N CASE WHEN MONTH(@Date卡塔尔(قطر‎ IN
(1,3,5,7,8,10,12卡塔尔国 THEN 31 WHEN MONTH(@Date卡塔尔国 IN (4,6,9,11卡塔尔 THEN 30 ELSE
CASE WHEN (YEA本田UR-V(@Date卡塔尔 % 4 = 0 AND YEA君越(@Date卡塔尔国 % 100 0卡塔尔国 O纳瓦拉 (YEA悍马H2(@Date卡塔尔国% 400 = 0State of Qatar THEN 29 ELSE 28 END END END
如若您曾经有引过Insus.NET这一个获取11月份时局的自定义函数,也能够参见上面那一个本子:
复制代码 代码如下: CREATE FUNCTION
[dbo].[udf_DaysInMonth] ( @Date DATETIME ) RETURNS INT AS BEGIN
RETURN CASE WHEN MONTH(@Date) IN (1,3,5,7,8,10,12) THEN 31 WHEN
MONTH(@Date) IN (4,6,9,11) THEN 30 ELSE
[dbo].[DaysOfFebruary](YEAR(@Date)) END END

CREATE FUNCTION [dbo].[udf_DaysInMonth]

    @Date DATETIME 
)
RETURNS INT
AS
BEGIN
RETURN CASE WHEN MONTH(@Date) IN (1,3,5,7,8,10,12) THEN 31
            WHEN MONTH(@Date) IN (4,6,9,11) THEN 30
            ELSE [dbo].[DaysOfFebruary](YEAR(@Date))
            END
END

sql获取月份中的天数代码,下边介绍了二种办法首如若讲了关于天数据获得与一月份特殊月份的处理啊。

获得月份天数,以往在博客上也会有写过,可是它只是获得五月份的造化。链接如下:

顾客必要传入年份,获取该年度四月份的运气。能够写成二个客户自定义函数

CREATE FUNCTION [dbo].[udf_DaysInMonth]

    @Date DATETIME 
)
RETURNS INT
AS
BEGIN
RETURN CASE WHEN MONTH(@Date) IN (1,3,5,7,8,10,12) THEN 31
            WHEN MONTH(@Date) IN (4,6,9,11) THEN 30
            ELSE CASE WHEN (YEAR(@Date) % 4 = 0 AND YEAR(@Date) % 100 <> 0) OR (YEAR(@Date) % 400  = 0)
                      THEN 29
                      ELSE 28
                 END
            END
END

实例

 

1.SELECT 32-DAY(getdate()+32-DAY(getdate())) SELECT
32-DAY(getdate()+32-DAY(getdate()))

金沙js娱乐场官方网站 1金沙js娱乐场官方网站 2udf_DaysInMonth_Ver2_1