如何在Postgresql中提供一个由整数变量组成的间隔的日期变量

时间:2012-11-04 21:11:42

标签: sql postgresql date

我正在尝试从特定日期提取一定年份,因为正确的语法是

<date> - interval '5 years';

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

date+interval '% years',years;

我收到了错误,并没有让我这样做。什么是正确的方法。

2 个答案:

答案 0 :(得分:2)

我相信你应该写:

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

(免责声明:未经测试,自从我上次做这类事以来已经过去了一年多。)

答案 1 :(得分:0)

鲁哈克是对的;你可以使用字符串连接来创建一个区间文字,然后再投射它。

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

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

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