因为 between 是包含边界的

解决方案 »

  1.   

    BETWEEN (select DATEADD(mm, DATEDIFF(mm, 0, DATEADD(m, -1, GETDATE())), 25)) AND select DATEADD(mm, DATEDIFF(mm, 0, DATEADD(m, -1, GETDATE())), 24)
      

  2.   


    select DATEADD(mm, DATEDIFF(mm, 0, DATEADD(m, -2, GETDATE())), 25)select DATEADD(mm, DATEDIFF(mm, 0, DATEADD(m, -1, GETDATE())), 24)-----------------------
    2009-01-26 00:00:00.000(1 個資料列受到影響)
    -----------------------
    2009-02-25 00:00:00.000(1 個資料列受到影響)
      

  3.   


    select dateadd(mm,-1,DATEADD(mm, DATEDIFF(mm, 0, DATEADD(m, -1, GETDATE())), 25))
    --2009-01-26 00:00:00.000
    select DATEADD(mm, DATEDIFF(mm, 0, DATEADD(m, -1, GETDATE())), 24)
    --2009-02-25 00:00:00.000
      

  4.   

    SQL写错了select DATEADD(mm, DATEDIFF(mm, 0, DATEADD(m, -1, GETDATE())), 25)
    select DATEADD(mm, DATEDIFF(m, -1, GETDATE()), 24)Result:
    -----------------------
    2009-02-26 00:00:00.000
    -----------------------
    2009-04-25 00:00:00.000select DATEADD(mm, DATEDIFF(mm, 0, DATEADD(m, -1, GETDATE())), 25)
    select DATEADD(mm, DATEDIFF(m, 1, GETDATE()), 24)Result:
    -----------------------
    2009-02-26 00:00:00.000
    2009-03-25 00:00:00.000