[英]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.