最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

sqlserver中獲取月份的天數(shù)的方法分享

 更新時(shí)間:2011年09月12日 14:53:01   作者:  
今天查看以前專(zhuān)案的數(shù)據(jù)庫(kù)自定義函數(shù),溫習(xí)溫習(xí)。發(fā)現(xiàn)其中有一個(gè)函數(shù),是獲取月份的天數(shù)的自定義函數(shù)。
如下:
復(fù)制代碼 代碼如下:

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(@Date)
RETURN @RValue
END
GO

獲取月份天數(shù),以前在博客上也有寫(xiě)過(guò),不過(guò)它只是取得二月份的天數(shù)。鏈接如下:http://www.cnblogs.com/insus/articles/2025019.html
現(xiàn)第一眼看見(jiàn)專(zhuān)案中這個(gè)函數(shù),總覺(jué)它寫(xiě)得不夠好的感覺(jué),是否能把它改寫(xiě)得更好些,啟發(fā)點(diǎn)也是從獲取二月份天數(shù)的CASE函數(shù)想起的。
因此,我嘗試改了,如下:
復(fù)制代碼 代碼如下:

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

如果你已經(jīng)有引過(guò)Insus.NET那個(gè)獲取二月份天數(shù)的自定義函數(shù),也可以參考下面這個(gè)版本:
復(fù)制代碼 代碼如下:

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

相關(guān)文章

最新評(píng)論

临沭县| 高要市| 福清市| 青川县| 海晏县| 茂名市| 广宁县| 鄂托克旗| 仁寿县| 寻乌县| 乌苏市| 绵阳市| 自治县| 定安县| 扶沟县| 开封县| 蕲春县| 太原市| 镇巴县| 泊头市| 上栗县| 香港| 阳信县| 姜堰市| 炉霍县| 克山县| 莫力| 锡林浩特市| 克什克腾旗| 太仓市| 望江县| 凤庆县| 绵竹市| 邓州市| 阿坝| 潼关县| 鄂温| 岫岩| 枝江市| 仁化县| 宜章县|