Sql 语句,获取当月天数,以及本年天数

解决方案 »

  1.   

    算算第一天和最后一天的差,
    如果是leap year  366
    else 365
    0122非常。这个年可能不准,有一年2月只有12天。
      

  2.   

    select datediff(day,convert(varchar(8),GETDATE(),120)+'01',
           convert(varchar(8),dateadd(month,1,GETDATE()),120)+'01')
    select datediff(day,rtrim(YEAR(GETDATE()))+'0101',rtrim(YEAR(GETDATE())+1)+'0101')/*-----------
    31(1 行受影响)
    -----------
    365(1 行受影响)
      

  3.   

    select datediff(d,convert(varchar(7),getdate(),120)+'-01',convert(varchar(7),dateadd(m,1,getdate()),120)+'-01')
    /*
    ----
    31(1 行受影响)
    */
    select datediff(d,ltrim(year(getdate()))+'-01-01',ltrim(year(getdate())+1)+'-01-01')
    /*
    -----------
    365(1 行受影响)*/