1

我正在尝试从特定日期提取几年,正确的语法是

<date> - interval '5 years';

但我不想提取特定的年数,而是一个变量,用户将提供该变量作为参数。我尝试了以下变量名是 years :

date+interval '% years',years;

我收到一个错误,它不允许我那样做。什么是正确的方法。

4

2 回答 2

2

我相信你应该能够写:

specific_date + (number_of_years || ' years')::INTERVAL

(免责声明:未经测试,距离我上次做这种事情已经一年多了。)

于 2012-11-04T21:15:51.143 回答
0

ruak 是对的;您可以使用字符串连接来创建间隔文字,然后对其进行转换。

我更喜欢使用日期数学来创建间隔,而不是字符串连接。它是,IMO,更清洁。

SELECT DATE '2012-01-01' + 10 * INTERVAL '1' YEAR;

在这里,您可以替换10为所需的年数或占位符参数。

于 2012-11-04T22:59:13.750 回答