【发布时间】:2019-12-11 17:59:37
【问题描述】:
我有一个查询要带上每个月最近5年的值, 它一直有效,直到您在几个月后到达 不同的最后一天(如 31 或 29)
SELECT isin, nominal_comulativo , periodo_base
FROM lamina_perfil
WHERE isin = 'PERFIL 2020'
AND periodo_base >= date '2019-03-31' - INTERVAL '5 years'
AND periodo_base <= '2019-03-31'
我的结果看起来像这样
+----------------+--------------------+--------------+
| ISIN | nominal_comulativo | periodo_base |
+----------------+--------------------+--------------+
| PERFIL 2020 | 1.04 | 2014-03-31 |
+----------------+--------------------+--------------+
| PERFIL 2020 | 2.45 | 2014-04-30 |
+----------------+--------------------+--------------+
| PERFIL 2020 | 1.34 | 2014-05-30 |
+----------------+--------------------+--------------+
| PERFIL 2020 | 1.34 | 2014-06-30 |
+----------------+--------------------+--------------+
| PERFIL 2020 | 1.34 | 2014-07-31 |
+----------------+--------------------+--------------+
| PERFIL 2020 | 1.34 | 2014-08-29 |
+----------------+--------------------+--------------+
但是当我设置 WHERE 条件不同时,比如
period_base> = date '2019-02-31' - INTERVAL '5 years'
AND period_base <= '2019-02-31'
它给了我错误“日期/时间字段值超出范围:“2019-02-31”'
其他人?
【问题讨论】:
-
“2019-02-31”,2 月 31 日,不是有效日期。 2 月只有 28 或 29 天。
标签: sql postgresql date