【问题标题】:Display record between today's date and 6 months before显示今天和之前 6 个月之间的记录
【发布时间】:2012-04-22 08:11:57
【问题描述】:

我的 SQL SELECT 语句有问题。基本上我想返回交易日期在今天日期和今天日期减去6个月之间的所有记录。

到目前为止我尝试过的是:

SELECT * FROM loan_ledger
WHERE trandate <= DATEADD(month,-6,GETDATE())

但它没有得到确切的结果。结果是返回日期如 2009 年或 2007 年,但我想要的是,如果今天的日期是 2012 年 4 月 9 日,结果必须是从该日期(2012 年 4 月 9 日)到 2012 年 4 月 9 日减去 6 个月(10 月9,2011)。仅限。

结果是显示过去的交易,但仍然显示我不想要的 2009 年、2001 年的记录!

有人可以帮我吗?

【问题讨论】:

    标签: asp.net sql sql-server sql-server-2008 tsql


    【解决方案1】:

    另一个答案很接近,但如果您使用的是 BETWEEN,如果您想包括今天,则需要在日期中添加一个

    select * from loan_ledger
    where trandate BETWEEN dateadd(month,-6,getdate()) AND getdate()+1
    

    当使用 between 和 getdate 时,它​​不会包括今天,除非你在 1 到它。

    【讨论】:

      【解决方案2】:

      只要改变你的where子句

      select * from loan_ledger
      where trandate >= dateadd(month,-6,getdate()) AND trandate <= getdate()
      

      问候。

      【讨论】:

        【解决方案3】:

        你所有的 where 语句都是“在 6 个月前获取信息”而不是“从 6 个月前到今天获取信息”

        试试类似的东西

        select * from loan_ledger
        where trandate BETWEEN dateadd(month,-6,getdate()) AND getdate()
        

        【讨论】:

          【解决方案4】:

          您要查询 trandate

          如果您只想翻译今天和 6 个月前的 between,请尝试

          trandate between dateadd(month, -6, getdate()) and getdate()  
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2011-01-03
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2011-12-20
            相关资源
            最近更新 更多