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');
      ---测试获取月份总天数函数