【问题标题】:How to select data from sql that is older than 6 months?如何从 sql 中选择超过 6 个月的数据?
【发布时间】:2012-10-10 06:48:33
【问题描述】:

如果另一个表中的日期至少比今天早 6 个月,我想从一个表中选择一些数据。 我尝试过这样的事情: Select records from SQL Server if greater than 6 months 但我得到了错误:子查询返回了超过 1 个值。当子查询跟随 =、!=、、>= 或当子查询用作表达式时,这是不允许的。
这是我的处理方式:

SELECT FCIF, [Date], [Desc]
FROM tblFCIF
WHERE tblFCIF.FCIF =
(SELECT FCIFSignOff.FCIF
FROM FCIFSignOff
WHERE ID='12'
AND (DateDiff(month,SignOffDate,GetDate()) > 0) )

因此,没有最后一行的这段代码选择了 ID 为 12 的所有内容。我只需要获取 6 个月前的所有内容。

DATEDIFF(datepart,startdate,enddate)

当“月”在时段内时,它会返回月差。

【问题讨论】:

    标签: sql datediff


    【解决方案1】:

    代替您的DateDiff 行,使用:

    AND (DateAdd(MM, -6, GetDate()) > SignOffDate)
    

    【讨论】:

      【解决方案2】:

      我不知道您的架构是什么样的。但是,我将继续猜测您需要 IN 运算符,而不是 = 运算符。

      SELECT FCIF, [Date], [Desc]
      FROM tblFCIF
      WHERE tblFCIF.FCIF IN
      (SELECT FCIFSignOff.FCIF
      FROM FCIFSignOff
      WHERE ID='12'
      AND (DateDiff(month,SignOffDate,GetDate()) > 0) )
      

      【讨论】:

      • In 是我想要的,但 DateDiff 对我不起作用。我不得不使用添加日期。
      猜你喜欢
      • 2011-12-06
      • 1970-01-01
      • 1970-01-01
      • 2020-05-20
      • 1970-01-01
      • 2015-10-19
      • 1970-01-01
      • 2015-08-26
      • 2014-07-05
      相关资源
      最近更新 更多