首页 > 解决方案 > 创建时间超过 +90 天的记录

问题描述

我有一个从工人那里收集工作时间报告的数据库,并且我被要求为最后报告日期大于 90 天的有效合同的特定部门创建警报

我有包含条目的 ReportDate 列,但我不确定如何在不使用 GETDATE 函数的情况下创建不同的列

如前所述,我尝试了 getdate 函数,在这种情况下显然无效

(不是代码,但需要查询)选择不同的(newcontractid),其中最后一个 ReportDate 大于 90 天......

标签: sqlsql-servermax

解决方案


你似乎想要这样的东西:

select contractid
from t
where t.status = 'active'  -- whatever this is
group by contractid
having max(reportdate) < current_date - interval '90 day';

这使用标准 SQL 语法。在 MySQL 中,日期函数为:

having max(reportdate) < current_date - interval 90 day;

在 SQL Server 中:

having max(reportdate) < dateadd(day, -90, getdate())

推荐阅读