多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > 數據庫 > Sqlserver > sqlserver中獲取月份的天數的方法分享

sqlserver中獲取月份的天數的方法分享

來源:程序員人生   發布時間:2014-05-22 01:41:58 閱讀次數:3490次
今天查看以前專案的數據庫自定義函數,溫習溫習。發現其中有一個函數,是獲取月份的天數的自定義函數。
如下:
代碼如下:
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

獲取月份天數,以前在博客上也有寫過,不過它只是取得二月份的天數。鏈接如下:http://www.cnblogs.com/insus/articles/2025019.html
現第一眼看見專案中這個函數,總覺它寫得不夠好的感覺,是否能把它改寫得更好些,啟發點也是從獲取二月份天數的CASE函數想起的。
因此,我嘗試改了,如下:
代碼如下:
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

如果你已經有引過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
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 亚洲视频在线一区 | 日韩欧美国产一区二区三区四区 | 欧美激情_区二区三区 | 国产成人99久久亚洲综合精品 | 中文字幕一区视频 | 最新国产一区二区精品久久 | 一级毛片在线 | 12306ys播播影院午夜 | 亚洲国产第一区二区三区 | 男女日日| 欧美一区二区三区精品 | 在线成人tv天堂中文字幕 | 99精品久久秒播无毒不卡 | 一久久 | 色丁香色婷婷 | 欧美日韩一 | 色悠久久久久综合欧美99 | 午夜理伦三级理论三级60 | 91久久综合九色综合欧美亚洲 | 欧美一级免费观看 | 泡泡影视福利影院 | 91 色| 欧美性一级 | 伊人不卡 | 久久久久国产免费 | 精品国产一区二区二三区在线观看 | 最近中文免费字幕8 | 国产成人做受免费视频 | 亚洲精品国产suv一区88 | 二区三区在线 | 操人视频网站 | 国产黄色免费在线观看 | 成人国产一区二区 | 国产女人18毛片水 | 欧美人与牲动交xxxxbbbb | 免费一级做a爰片久久毛片潮 | 欧美日韩国产中文字幕 | 国产亚洲精品国看不卡 | 亚洲人成网亚洲欧洲无码 | 亚洲一区二区三区国产精品 | 欧美色图一区 |