根据年月计算当月天数的SQL函数

来源:互联网 发布:虚拟服务器软件下载 编辑:程序博客网 时间:2024/06/09 15:22

根据年月,计算出当月的天数的SQL自定义函数

Create FUNCTION dbo.f_GetMonthDays
 (
 @year int,
 @month int
 )
RETURNS int
AS
 BEGIN
  Declare @Ret_V int
  Declare @tmpDate datetime

  SET @tmpDate = Convert(datetime, Cast(@year as varchar(4)) + '-' + Cast(@month as varchar(2)) + '-01')

  SET @Ret_V = DateDiff(dd,@tmpDate,DateAdd(mm,1,@tmpDate))

  RETURN @Ret_V
 END

 

下面说一下这个函数的原理,其实很简单,比如要计算1981年2月有多少天,先组合出一个字符串"1981-2-01",然后将其转换成一个datatime型数据赋给一临时日期变量@tmpDate ,再利用DateAdd函数以月为单位加1即得到,"1981-3-01",正好SQL有根据日期单位算时差的函数,下面我们就用DateDiff出场显灵通了,DateDiff(dd,@tmpDate,DateAdd(mm,1,@tmpDate)),那么算两个日期的天数就这样出来了,OK,原理就是这么简单,根本不用去考虑什么闺年以及正常跨月的情况了...调用简单,执行效率高,居家旅行必备之函数.

原创粉丝点击