【问题标题】:How does one retrieve records 1 year prioir from specific date in sql server 2012如何从 sql server 2012 中的特定日期开始检索 1 年前的记录
【发布时间】:2018-01-05 14:41:46
【问题描述】:

SQL Server 2012

我创建了一个临时表,其中包含格式为 yyyy/mm/dd 的日期列

我正在寻找一种方法,从 2017/01/01 的 -1 年临时表中按日期提取记录。我知道使用 getdate 从当前日期拉 -1,但我不确定如何使用过去的日期来处理这个问题。

最初我使用的是以下内容:

      SELECT *
      from #participants_temp
  where ERSEFFDT < '2017-01-01'
  and ERSEFFDT <> '0000-00-00'

但我很快意识到我有大量的记录。我需要在 2017/01/01/ 前 1 年提取记录

非常感谢任何建议。谢谢。

【问题讨论】:

    标签: sql-server


    【解决方案1】:

    尝试以下任何一种方法

    SELECT
        *
        FROM #participants_temp
            WHERE ERSEFFDT BETWEEN  '2016-01-01' and '2017-01-01'
    

    SELECT
        *
        FROM #participants_temp
            WHERE ERSEFFDT BETWEEN DATEADD(YYYY,-1,'2017-01-01') and '2017-01-01' 
    

    【讨论】:

    • 谢谢。这回答了我的问题。我想多了这个问题。日期范围将满足我的查询。
    • BETWEEN 语句中较大的值必须是第二个。
    • @mannj2018 如果解决了您的问题,请接受解决方案
    【解决方案2】:
    declare @date date = '2017-01-01'
    
    select * from #participants_temp where 
     ERSEFFDT between dateadd(yy, -1, @date) and @date
    

    【讨论】:

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