如何获得当月的天数?

来源:互联网 发布:网络棋牌害死人 编辑:程序博客网 时间:2024/06/06 02:17
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 160x600, 创建于 08-4-23MSDN */google_ad_slot = "4367022601";google_ad_width = 160;google_ad_height = 600;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
--方法一
DECLARE@monthint,@yearint
SELECT@month=6,@year=2004
SELECTDATEPART(dd,DATEADD(m,1,CAST(STR(@month)+'/01/'+STR(@year)as
datetime))-1)
--方法二
DECLARE@DATEDATETIME
SET@DATE=GETDATE()

SELECTCAST(
 --Firstdayofnextmonth
 DATEADD(MONTH,DATEDIFF(MONTH,0,@DATE)+1,0)
 -
 --Firstdayofcurrentmonth
 DATEADD(MONTH,DATEDIFF(MONTH,0,@DATE),0)
 ASINT)

--方法三
这个你也可以写一个UDF来实现:
createfunctionfn_NumOfDaysInMon(@datedatetime)
 returnsint
as
begin
declare@begmonthdatetime,@endmonthdatetime,@daysint
select@begmonth=dateadd(month,datediff(month,0,@date),0)
select@endmonth=dateadd(dd,-datepart(dd,@date),dateadd(mm,1,@date))
select@days=datediff(dd,@begmonth,@endmonth)+1
return@days
end
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 160x600, 创建于 08-4-23MSDN */google_ad_slot = "4367022601";google_ad_width = 160;google_ad_height = 600;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>