SQL中如何取得当前(或指定)月份的天数
一、获取当前日期
Select getdate()
结果:2014-05-22 18:48:52.030
二、获取当前日期到SQL初始日期的差值
select datediff(mm,0,getdate())
结果:1372
其中mm代表差值单位为月,0为SQL内置初始日期(1900年1月1日0时0分0秒)
三、给初始日期加上上面得到的月数,得到本月1日的日期
select dateadd(mm,datediff(mm,0,getdate()),0)
结果:2014-05-01 00:00:00.000
四、给初始日期加上上面得到的月数加1,得到下月1日的日期
select dateadd(mm,datediff(mm,0,getdate())+1,0)
结果:2014-06-01 00:00:00.000
五、将上面得到的日期减1,得到本月最后一天的日期,即本月倒数第一天的日期
select dateadd(mm,datediff(mm,0,getdate())+1,0)-1
结果:2014-05-31 00:00:00.000
六、取出上面日期中的“日”
select day(dateadd(mm,datediff(mm,0,getdate())+1,0)-1)
结果:31
函数解释
DATEDIFF(datepart,startdate,enddate)
功能:返回两个日期之间的天数。
startdate enddate 参数是合法的日期表达式。
DATEADD(datepart,number,date)
功能:在日期中添加或减去指定的时间间隔。
date 参数是合法的日期表达式。number 是您希望添加的间隔数;对于未来的时间,此数是正数,对于过去的时间,此数是负数。

datepart 参数可以是下列的值:
datepart
缩写
yy, yyyy
季度
qq, q
mm, m
年中的日
dy, y
dd, d
wk, ww
星期
dw, w
小时
hh
分钟
mi, n
ss, s
js当前日期加一天毫秒
ms
微妙
mcs
纳秒
ns