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 天的主要内容,如果未能解决你的问题,请参考以下文章
SQL - SELECT WHERE 存储在 JSON varchar 中的日期大于或小于固定日期