①select day(dateadd(mm,1,getdate())-day(getdate()))
以下是详细说明:
getdate() 获取当前系统日期和时间
如:select getdate() 结果是:2006-10-28 22:06:24.873
day(getdate()) 结果是: 28
dateadd(mm,1,getdate())目的是为了在当前的系统日期上加上1个月
结果是:2006-11-28 22:06:24.873
dateadd(mm,1,getdate())-day(getdate())
结果是:2006-10-31 22:06:24.873
day(dateadd(mm,1,getdate())-day(getdate()))
结果就是10月份的天数31天
运用datepart()函数也能达到同样的效果:
②select datepart(day,dateadd(mm,1,getdate())-day(getdate()))
以上都是用月来实现的,同理,也可以用天数来实现:
③SELECT 32-Day(getdate()+32-Day(getdate()))
getdate()+32 目的是在当前的系统时间加上32天
结果是:2006-11-29 22:06:24.873
getdate()+32-Day(getdate()) 结果是:2006-11-01 22:06:24.873
Day(getdate()+32-Day(getdate())) 结果是:1 ⑴
32-Day(getdate()+32-Day(getdate()))结果就是10月份的天数31天
说明:只能用≥32的数字,不能用<32的数字,不然会在⑴处出现0(31时)或负数(≤30时)的结果。
以上的3条sql语句中的getdate()也可以换成自己所需的具体日期,如:
①select day(dateadd(mm,1,' 2006-10-28 ')-day(' 2006-10-28 '))
②select datepart(day,dateadd(mm,1,' 2006-10-28 ')-day(' 2006-10-28 '))
③select 32-day(dateadd(day,32,' 2006-10-28 ')-Day(' 2006-10-28 '))