【问题标题】:Pulling Data from six months prior to current date not working从当前日期前六个月提取数据不起作用
【发布时间】:2020-03-04 22:38:17
【问题描述】:

我正在尝试提取从当前日期起 6 个月内提交的数据。该报告每天都会运行,我希望它自动选择数据。我已经输入了这段代码,但什么也没有出现。没有错误,就好像日期没有输入一样。

L.Open_Date = DATEADD(month, -6, GETDATE())

但是,如果我确认输入了 6 个月前的数据。我将代码更改为

L.Open_Date >= DATEADD(month, -6, GETDATE())

并且此代码有效。它会带回当前日期前 6 个月提交的所有内容。

有没有办法让 6 个月前的数据只拉起来?

【问题讨论】:

    标签: sql sql-server tsql date


    【解决方案1】:

    大概,你想要:

    L.Open_Date = DATEADD(month, -6, CAST(GETDATE() AS DATE))
    

    这会给你 6 个月的返回时间没有时间组件getdate() 否则会返回)。如果Open_Date 本身就是date,这将起作用。如果它有一个你想忽略的时间组件,那么这将是:

    CAST(L.Open_Date AS DATE) = DATEADD(month, -6, CAST(GETDATE() AS DATE))
    

    或者更长,但 SARGable:

    L.Open_Date >= DATEADD(month, -6, CAST(GETDATE() AS DATE))
    AND L.OPen_DAte >= DATEADD(day, 1, DATEADD(month, -6, CAST(GETDATE() AS DATE)))
    

    【讨论】:

      【解决方案2】:

      您需要投射当前日期 CAST(L.Open_Date AS DATE) = DATEADD(月, -6, CAST(GETDATE() AS DATE)) https://www.w3schools.com/sql/func_sqlserver_cast.asp

      【讨论】:

        猜你喜欢
        • 2022-01-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-06-07
        • 2019-08-07
        • 1970-01-01
        相关资源
        最近更新 更多