日期:2014-05-18 浏览次数:20588 次
declare @s datetime set @s = '2012-01-17' select dateadd(day,-1,left(convert(varchar(10),dateadd(month,1,@s),120),7) + '-01')
------解决方案--------------------
--获取8月份有多少天 --用下个月的第一天减去这个月的第一天并转换成int型就能得到这个月有多少天 select Convert(int, convert(datetime,'2011-09-01 00:00:00')-convert(datetime,'2011-08-01 00:00:00'))
------解决方案--------------------
declare @term datetime set @term='2012-01-17' select datediff(day,dateadd(day,1-day(@term),@term) ,dateadd(day,-1,dateadd(month,1,dateadd(day,1-day(@term),@term))))+1
------解决方案--------------------
eg:
SELECT DATEDIFF(DAY, '2012-02-01', '2012-03-01')
得到2012年2月份的天数
------解决方案--------------------
select DATEDIFF(DAY,cast(convert(varchar(7),GETDATE(),120)+'-01' as datetime),
cast(convert(varchar(7),dateadd(month,1,getdate()),120)+'-01' as datetime))
思路就是下月第一天减本月第一天