过去3个月内且最近30天内的审核脚本

问题描述 投票:0回答:1

我正在尝试运行一个查询,该查询使我能够查看在过去30天内交付中运行的脚本早于3个月的地方,因此我们知道需要对其进行更新。我已经能够构建查询以向我显示所有脚本及其上次重新生成日期(输入了特定日期),但无法解决;

  1. 如何仅查看最近30天的数据。
  2. 如何仅查看date_regen列距今天的日期早于3个月的脚本-来自我正在查看的最近30天的数据。

示例表

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  |
sql impala hue
1个回答
0
投票

我认为您需要简单的过滤:

select t.*
from t
where visit_datetime >= current_timestamp - interval 30 day and
      date_regen < add_months(current_timestamp, -3)
© www.soinside.com 2019 - 2024. All rights reserved.