如何在postgresql中从自定义日期中添加/减去n个天数?
我有一个数据库,其中有一个“发布日期”列和“预测日期”列 我正在从数据库中选择最长日期 但我想获取/查询/提取最大可用日期前的第N天 like(最长日期-1/2或n天) &由于最大日期是自定义的 所以这里不能用今天或昨天的逻辑。 有可能吗如何在postgresql中从自定义日期中添加/减去n个天数?,sql,postgresql,date,datetime,date-arithmetic,Sql,Postgresql,Date,Datetime,Date Arithmetic,我有一个数据库,其中有一个“发布日期”列和“预测日期”列 我正在从数据库中选择最长日期 但我想获取/查询/提取最大可用日期前的第N天 like(最长日期-1/2或n天) &由于最大日期是自定义的 所以这里不能用今天或昨天的逻辑。 有可能吗 计算最长日期 在max_date-n和max_date之间使用筛选记录 例如: SELECT issue_date, forecast_date, state_name, district_name, rainfall, geometry FROM (
筛选记录
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()
窗口函数将所需的值添加为单独的列,以便稍后进行比较。我已删除了您显然不使用的产品标签。请仅标记问题中涉及的产品样本数据最好显示为。有关如何创建美观的表的一些提示,请参见。感谢@BritishSteel,列的数据类型是test,我将列的数据类型更改为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