[导入]SQL获取当前月份的天数
群里有人问这个问题,并且写了一个存储过程,相当于是直接用写程序的思想来写的..
declare @run int ,@NO2_day int
set @run=0
if year(getdate()) %4 ..... --闰年
set @run=1
if @run>1
set @No2_day =29
else
set @No2_day=28
select '日期'=
case month(getdate())
when 1 then cast(31 as varchar) + '日'
when 2 then cast(@No2_day as varchar )+ '日'
when 3 then cast(31 as varchar )+ '日'
when 4 then cast(30 as varchar )+ '日'
when 5 then cast(31 as varchar )+ '日'
when 6 then cast(30 as varchar )+ '日'
when 7 then cast(31 as varchar )+ '日'
when 8 then cast(31 as varchar )+ '日'
when 11 then cast(31 as varchar )+ '日'
end
我想了想,觉得太过烦琐,于是写了这样一行
select datediff(dd,getdate(),dateadd(mm,1,getdate()))
功能达到..交差~呵呵
2009年6月26日更新:多谢huige1004兄弟的指正。上面的语句有错误,当当前的日期的日已经大于下个月的最大天数的时候,就会出现算出来的天数只能达到下个月的天数大小。huige1004兄弟写的正确语句如下:
select day(dateadd(d,-1,dateadd(m,1,substring('2009-01-31',1,7) + '-01')))
类别:Sql 查看评论
文章来源:http://hi.baidu.com/hizsk/blog/item/b380c61344505b23dd540151.html