您的位置:首页 > 数据库

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

2012-11-14 17:13 309 查看
根据年月,计算出当月的天数的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,原理就是这么简单,根本不用去考虑什么闺年以及正常跨月的情况了...调用简单,执行效率高,居家旅行必备之函数.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: