2016-04-11 34 views
0

我试图写出来与访问SQL查询,将结果显示在何处天差超过7(7位和-7)访问SQL DATEDIFF大于7天

我认为这会工作

SELECT DateDiff('d', EndDate1, EndDate2) > 7 AS EndDate 
FROM TableName 

不过,我得到以下错误,当我尝试运行它:

Error in list of function arguments: '>' not recognized. 
Unable to parse query text. 

我在做什么错?

+0

该查询应在Access中返回布尔型“0”和“-1”。我的测试没有解析'>'符号的问题。 –

回答

3

你需要把这个在WHERE声明是这样的:

SELECT * FROM TableName WHERE ABS(DateDiff('d', EndDate1, EndDate2)) > 7 
+3

这只会返回+7差值的日期。将'DateDiff'包裹在'Abs'中,它将返回负差。 –

+0

@ DarrenBartrup-Cook哦,哈哈。谢谢,忘了这个。 –

+0

它的工作!谢谢! – Havoux

3

你试图把条件逻辑在实际SELECT但它实际上在WHERE属于选择的结果(如果你的目的是筛选记录)

现在,如果你想找出是也许在输入/输出日期界限的记录,你总是可以这样做:

SELECT iif(
      ABS(DateDiff('d', EndDate1, EndDate2)) > 7, 
      'out of bounds', 
      'in bounds' 
     ) AS DateRangeStatus 

我知道这并不一定能回答你的问题,但我认为它不会解释发生了什么。

+0

啊,我明白了,谢谢你的信息! – Havoux