如何从 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)
& 由于最大日期是自定义的,
所以不能在这里使用今天或昨天的逻辑。
有什么办法吗?
- 计算最大日期
- 使用
BETWEEN max_date - n AND max_date
过滤您的记录
示例:
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 函数将所需值添加为单独的列,以后可以用于比较。
我有一个数据库,其中有 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)
& 由于最大日期是自定义的,
所以不能在这里使用今天或昨天的逻辑。 有什么办法吗?
- 计算最大日期
- 使用
BETWEEN max_date - n AND max_date
过滤您的记录
示例:
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 函数将所需值添加为单独的列,以后可以用于比较。