Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在postgresql中从自定义日期中添加/减去n个天数?_Sql_Postgresql_Date_Datetime_Date Arithmetic - Fatal编程技术网

如何在postgresql中从自定义日期中添加/减去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 (

我有一个数据库,其中有一个“发布日期”列和“预测日期”列

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

但我想获取/查询/提取最大可用日期前的第N天

like(最长日期-1/2或n天)

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

所以这里不能用今天或昨天的逻辑。 有可能吗

  • 计算最长日期
  • 在max_date-n和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()
    窗口函数将所需的值添加为单独的列,以便稍后进行比较。

    我已删除了您显然不使用的产品标签。请仅标记问题中涉及的产品样本数据最好显示为。有关如何创建美观的表的一些提示,请参见。感谢@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