SQL where 日期列比另一个日期列大至少 20 天

Posted

技术标签:

【中文标题】SQL where 日期列比另一个日期列大至少 20 天【英文标题】:SQL where date column bigger than other date column by atleast 20 days 【发布时间】:2014-03-30 14:04:46 【问题描述】:

我很难在我的表格中找到两个日期列之间至少相差 20 天的行(不需要具体日期,仅相差 20 天)

我试过这个没有运气:

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

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

【问题讨论】:

删除了 mysql 标签,因为语法是 SQL Server。 如果你想要至少 20 天,那么你不想要一个等号,你想要一个大于或等于号。 【参考方案1】:

如果您的日期实际上声明为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'

【讨论】:

以上是关于SQL where 日期列比另一个日期列大至少 20 天的主要内容,如果未能解决你的问题,请参考以下文章