[导入]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
posted @ 2008-11-08 23:40  绝殇  阅读(793)  评论(0编辑  收藏  举报