繁体   English   中英

如何从超过6个月的sql中选择数据?

[英]How to select data from sql that is older than 6 months?

如果来自另一个表的日期至少比今天早6个月,我想从一个表中选择一些数据。 我尝试过这样的事情: 如果超过6个月从SQL Server中选择记录,但我收到错误: 子查询返回的值超过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)

当'月'在daypart时,它返回月份的差异。

而不是您的DateDiff线,使用:

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

我不知道你的架构是什么样的。 但是,我要继续猜测你想要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) )

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM