我正在尝试运行一个查询,该查询使我能够查看在过去30天内交付中运行的脚本早于3个月的地方,因此我们知道需要对其进行更新。我已经能够构建查询以向我显示所有脚本及其上次重新生成日期(输入了特定日期),但无法解决;
示例表
visit_datetime | client | script | date_regen |
2019/10/04 03:32:51 | 1 | script1 | 2019-09-17 13:12:01 |
2019/09/27 03:32:52 | 2 | script2 | 2019-07-18 09:44:02 |
2019/10/06 03:32:50 | 3 | script3 | 2019-03-18 14:08:02 |
2019/10/02 06:28:24 | 4 | script6 | 2019-09-11 10:02:01 |
2019/03/01 06:28:24 | 5 | script7 | 2019-02-11 10:02:01 |
以下示例无法让我得到所需的信息。我的想法是,我将获得当前日期(使用now()),然后知道这一点,请查看过去30天内的所有数据。之后,我将在哪里,-3月(因此date_regen从当前日期开始3个月以上)。但是我无法正常工作。我也尝试过尝试-天,但也没有成功。
-- WHERE MONTH = MONTH(now()) AND YEAR = YEAR(now())
-- WHERE date_regen <= DATEADD(MONTH,-3,GETDATE())
-- WHERE DATEDIFF(MONTH, date_regen, GetDate()) >= 3
我当前用于获取表格的代码
SELECT split_part(js,'#',1) AS script,
date_regen,
client
FROM table
WHERE YEAR=2019 AND MONTH=10 AND DAY = 01 (This where is irrelevant as I would need to use now() but I don't know what replaces "YEAR/MONTH/DAY ="
GROUP BY script,date_regen,client
ORDER BY client DESC;
END GOAL我应该只看到客户端3,因为客户端1 + 2 + 4具有过去3个月中date_regen的标签,而客户端5的visit_datetime超出了30个限制。
visit_datetime | client | script | date_regen |
2019/10/06 03:32:50 | 3 | script3 | 2019-03-18 14:08:02 |
我认为您需要简单的过滤:
select t.*
from t
where visit_datetime >= current_timestamp - interval 30 day and
date_regen < add_months(current_timestamp, -3)