如果来自另一个表的日期至少比今天早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)
当'月'在白天时,它会返回月份差异。
答案 0 :(得分:15)
使用:
代替您的DateDiff
行
AND (DateAdd(MM, -6, GetDate()) > SignOffDate)
答案 1 :(得分:0)
我不知道您的架构是什么样的。但是,我将继续猜测您需要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) )