日期:2014-05-18  浏览次数:20416 次

日期实现问题
请问   如果我给出一个日期为: '2007-01-01 '
是否可以只通过这个信息来得出2007年1月的天数为31天呢?


------解决方案--------------------
declare @DATE datetime
set @DATE = '2007-01-01 '
SELECT CAST(DATEADD(MONTH,DATEDIFF(MONTH,0,@DATE)+1,0)-DATEADD(MONTH,DATEDIFF(MONTH,0,@DATE),0) AS INT )

------解决方案--------------------
declare @date datetime
set @date=getdate()
select DAY(dateadd(day,-1,convert(char(07),dateadd(month,1,@date),120)+ '-01 '))

--本月天數(2007.2)
28
------解决方案--------------------
最简单的办法
加一个月,两个日期相减为本月天数。

select datediff( day, getDate(),dateadd(month,1,getdate()))
------解决方案--------------------
declare @DATE datetime
--set @DATE = '2007-01-01 '
set @DATE = '2007-01-25 '
SELECT DATEDIFF(day,CONVERT(char(6),@DATE,112)+ '01 ',CONVERT(char(6),DATEADD(month,1,@DATE),112)+ '01 ')