mssql sqlserver獲取指定月份當月天數總和

Adeal2008發表於2018-10-09

摘要:
下文通過sql函式的形式,獲取指定月份的總天數
實驗環境:sqlserver 2008 R2


製作思路:
1. 獲取指定月份的第一天,
2. 並採用dateadd向後加一個月形成一個新的日期
3. 將兩個日期相減,並返回之間的相差天數,作為指定月份的總天數,如下所示:

CREATE FUNCTION dbo.fn_getMonthDayAll ---自定義函式名稱
(
@yyyyMM VARCHAR(20) ---指定輸入引數格式 4位年份2位月份
)
RETURNS INT ---函式返回值型別
AS
BEGIN
DECLARE @dayAll INT
DECLARE @monthStartDay DATETIME
SET @monthStartDay =LEFT(@yyyyMM,4)+`-`+RIGHT(@yyyyMM,2)+`-01`
SELECT @dayAll= DATEDIFF(DAY,@monthStartDay,DATEADD(MONTH,1,@monthStartDay)) ---獲取指定月份總天數
RETURN @dayAll;
END
GO

SELECT dbo.Fun_GetMonthDays(`201804`),
dbo.Fun_GetMonthDays(`201808`);
---測試獲取月份總天數函式

轉自:http://www.maomao365.com/?p=6792

相關文章