我在我的表中找不到行,其中两个日期列之间的差异至少为20天(不需要特定日期,只有20天差异)
我试了这个没有运气:
SELECT DocDate,DocDueDate,DocStatus
FROM dbo.OPCH
WHERE (DocDate - DocDueDate = 20) AND DocStatus = 'O' AND DocDate > '2014-01-01'
这不起作用。
任何帮助将不胜感激
答案 0 :(得分:3)
如果您的日期实际上声明为datetime
,则可以执行以下操作:
SELECT DocDate,DocDueDate,DocStatus
FROM dbo.OPCH
WHERE (DocDate >= DocDueDate + 20) AND DocStatus = 'O' AND DocDate > '2014-01-01';
在日期时间添加数字会被解释为添加该天数。不幸的是,这不适用于date
。
对于date
,您可以执行以下操作:
WHERE datediff(day, DocDueDate, DocDate) >= 20 AND DocStatus = 'O' AND DocDate > '2014-01-01'