如何从 postgresql 中的自定义日期 add/subtract n 天数?

How to add/subtract n number of days from a custom date in postgresql?

我有一个数据库,其中有 issue_date 列和 forecast_date 列,

我正在从数据库中选择最大日期,

但我想 fetch/query/extract 从最大可用日期开始的前 N ​​天

喜欢(最大日期 - 1 / 2 或 n 天)。

SELECT issue_date, forecast_date, state_name, district_name, rainfall, geometry 
FROM all_parameters_forecast_data 
WHERE "forecast_date" = (SELECT ((MAX("forecast_date")- INTERVAL '1 day') AS "forecast_date") FROM all_parameters_forecast_data)

& 由于最大日期是自定义的,

所以不能在这里使用今天或昨天的逻辑。 有什么办法吗?

  1. 计算最大日期
  2. 使用 BETWEEN max_date - n AND max_date
  3. 过滤您的记录

示例:

SELECT issue_date, forecast_date, state_name, district_name, rainfall, geometry 
FROM (
    SELECT
        *,
        MAX("forecast_data") OVER () as max_forecast_date
    FROM 
        all_parameters_forecast_data
) s
WHERE "forecast_date" BETWEEN max_forecast_date - n AND max_forecast_date

有很多方法可以实现#1。在我的示例中,我使用 MAX() window 函数将所需值添加为单独的列,以后可以用于比较。