一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數據庫技術|

服務器之家 - 數據庫 - Sql Server - sqlserver中獲取月份的天數的方法分享

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

2019-12-07 18:13MSSQL教程網 Sql Server

今天查看以前專案的數據庫自定義函數,溫習溫習。發現其中有一個函數,是獲取月份的天數的自定義函數。

如下: 

復制代碼代碼如下:


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 

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 九九精品视频在线观看 | 7788理论片在线观看 | 国内久久 | 日韩国产欧美精品综合二区 | 国产欧美一区二区三区免费 | 久草在线草a免费线看 | 火影小南被爆羞羞网站进入 | va在线视频 | 插鸡网站| 国产悠悠视频在线播放 | 国产午夜亚洲精品理论片不卡 | 射逼网| 男人的天堂久久精品激情 | 免费毛片在线观看 | 男人天堂色 | 黑人巨荃大战乌克兰美女 | 美女扒下内裤让男人桶的图片 | 久久AV喷吹AV高潮欧美 | 天天操天天草 | 67194久久| 国产成人夜色91 | 好猛好紧好硬使劲好大刺激视频 | 肉宠文很肉到处做1v1 | 日本特黄一级午夜剧场毛片 | 99这里精品 | 国内精品久久久久影院中国 | 欧美破处女视频 | 99影视在线视频免费观看 | 忘忧草在线社区WWW日本直播 | 久青草国产在视频在线观看 | 国产成人精品系列在线观看 | 五月婷婷伊人网 | 91粉色视频在线导航 | 亚洲天堂色视频 | 国产在线步兵一区二区三区 | av在线亚洲男人的天堂 | 黑人巨大爆粗亚裔女人 | freexxxx性大陆另类 | 欧美日韩一区二区三区韩大 | 全彩调教侵犯h本子全彩妖气he | 嫩草视频在线观看免费 |