select  DATEDIFF(dd,getdate(),dateadd(mm,1,getdate()))

解决方案 »

  1.   

    Select DATEPART(MM, GETDATE())
      

  2.   

    不应该在sql里获取当前月份天数,浪费资源!应该直接在代码里实现!
      

  3.   

    select DateDiff(dd,dateadd(mm,1,getDate()),getDate())
    -31
      

  4.   

    select  DATEDIFF(dd,getdate(),dateadd(mm,1,getdate()))
    经典
      

  5.   

    select  DATEDIFF(dd,getdate(),dateadd(mm,1,getdate()))
    相当经典
      

  6.   

    我的思路是:当前月之下个月第一天的前一天的日期值即可当前月的天数。declare @dt datetimeset @dt = getdate()
    select datepart(dd, dateadd(dd, -datepart(dd, dateadd(mm, 1, @dt)), dateadd(mm, 1, @dt)))
    select datepart(dd, dateadd(dd, -1, cast(datepart(yy, @dt) as varchar) + '-' + cast((datepart(mm, @dt) + 1) as varchar) + '-1')) set @dt = '2007-8-31'
    select datepart(dd, dateadd(dd, -datepart(dd, dateadd(mm, 1, @dt)), dateadd(mm, 1, @dt)))
    select datepart(dd, dateadd(dd, -1, cast(datepart(yy, @dt) as varchar) + '-' + cast((datepart(mm, @dt) + 1) as varchar) + '-1')) 
      

  7.   

    Select DATEPART(MM, GETDATE())
    我看我最多也就写到这,剩下的还需要看帮助文件 - -##
      

  8.   

    select  DATEDIFF(dd,getdate(),dateadd(mm,1,getdate()))
    这个的确不错
      

  9.   

    select datediff(dd,getdate(),dateadd(mm,1,getdate()))
      

  10.   

    select datediff(dd,getdate(),dateadd(mm,1,getdate())) 行不通吧,比如当前时间是1月31 得到的就是28天了
      

  11.   

    SELECT DATEDIFF(dd, GETDATE(), DATEADD(m, 1, GETDATE()))
      

  12.   

    啊?出这问题 我到是还真弄不出来...慌了smile9961(good life) 向你学习了!代码考走了~~~嘿嘿我当时面试设计SQL的少,都是ASP.NET 比较熟悉~
      

  13.   

    select  DATEDIFF(dd,'2007-1-31',dateadd(mm,1,'2007-1-31'))
    28
      

  14.   

    SELECT DATEDIFF(dd, GETDATE(), DATEADD(m, 1, GETDATE()))
    经典....可以正常获得
      

  15.   

    求出本月的最后一天就可以了
    select   day(DateAdd(dd,-1,Convert(varchar(10),year(getdate())) + '/' + Convert(varchar(10),month(getdate())+1) + '/1'))
      

  16.   

    晕,仍然有人说这种算法“select datediff(dd, getdate(), dateadd(mm,1,getdate()))”好 !看看它的执行结果吧:
    select datediff(dd, '2007-08-30', dateadd(mm,1,'2007-08-30'))
    -----------
    31select datediff(dd, '2007-08-31', dateadd(mm,1,'2007-08-31'))
    -----------
    30
      

  17.   

    SELECT DATEDIFF(dd, DATEADD(dd, 1 - DATEPART(dd, GETDATE()), GETDATE()), 
          DATEADD(mm, 1, DATEADD(dd, 1 - DATEPART(dd, GETDATE()), GETDATE()))) AS Expr1
      

  18.   

    select datediff(dd, '2007-08-30', dateadd(mm,1,'2007-08-30'))
     是错的
      

  19.   

    select right(convert(varchar(10),dateadd(day,-1,convert(varchar(8),dateadd(month,1,getdate()),120)+'01'),120),2)
      

  20.   

    思路是:
    下个月的第一天减一天,就是这个月的最后一天。
    再用datediff求出,这个月的第一天到最后一天的相距天数 +1天因为每个月的第一天是可以确定的。
      

  21.   

    select datediff(dd,getdate(),dateadd(mm,1,getdate()))说这个好的刚好跳到出题人的陷阱里了用下个月的第一天减去本月第一天就可以了
      

  22.   

    当月第一天:select dateadd(dd,-day(getdate())+1,getdate()) 
    当月最后一天:select dateadd(dd,-day(getdate()),dateadd(m,1,getdate()))
    相减即可
      

  23.   

    select datediff(dd,getdate(),dateadd(mm,1,getdate())) 这样行不行?
    我的思路是从当前日期到下个月的今天之间的日期数 比如7月2号 到8月2号 之间的日期数 就是7月份的日期数 不知道是不是楼主所要的?
      

  24.   

    select DATEDIFF(dd,dateadd(dd,1-datepart(dd,getdate()),getdate()),dateadd(mm,1,dateadd(dd,1-datepart(dd,getdate()),getdate())))
      

  25.   

    使用函数dateadd()把一个日期加上一个月,这个函数只简单地把月份值加1。select DateDiff(dd,dateadd(mm,1,getDate()),getDate())明显是错的。
    考的就是这个。
      

  26.   

    我做的
    use pubsdeclare  @dt  datetimeset  @dt='2005-11-4'select day(  dateadd(day,-1,convert(char(8),dateadd(month,1,@dt),120)+'1'))
      

  27.   

    下月第一天 减去 一 得到 本月最后一天 用day函数 求解。
      

  28.   

    绝对正确select right(convert(varchar(10),dateadd(dd,-1,cast(convert(varchar(8),dateadd(mm,1,'2007-01-31'),120)+'01' as datetime)),120),2)