mssql sqlserver获取指定月份当月天数总和
摘要:
下文通过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'); ---测试获取月份总天数函数