SQL日期列比其他日期列大至少20天

时间:2014-03-30 14:04:47

标签: php sql sql-server

我在我的表中找不到行,其中两个日期列之间的差异至少为20天(不需要特定日期,只有20天差异)

我试了这个没有运气:

SELECT DocDate,DocDueDate,DocStatus
FROM dbo.OPCH
WHERE (DocDate - DocDueDate = 20) AND DocStatus = 'O' AND DocDate > '2014-01-01'

这不起作用。
任何帮助将不胜感激

1 个答案:

答案 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'