我正在尝试从特定日期提取几年,正确的语法是
<date> - interval '5 years';
但我不想提取特定的年数,而是一个变量,用户将提供该变量作为参数。我尝试了以下变量名是 years :
date+interval '% years',years;
我收到一个错误,它不允许我那样做。什么是正确的方法。
我正在尝试从特定日期提取几年,正确的语法是
<date> - interval '5 years';
但我不想提取特定的年数,而是一个变量,用户将提供该变量作为参数。我尝试了以下变量名是 years :
date+interval '% years',years;
我收到一个错误,它不允许我那样做。什么是正确的方法。
我相信你应该能够写:
specific_date + (number_of_years || ' years')::INTERVAL
(免责声明:未经测试,距离我上次做这种事情已经一年多了。)
ruak 是对的;您可以使用字符串连接来创建间隔文字,然后对其进行转换。
我更喜欢使用日期数学来创建间隔,而不是字符串连接。它是,IMO,更清洁。
SELECT DATE '2012-01-01' + 10 * INTERVAL '1' YEAR;
在这里,您可以替换10
为所需的年数或占位符参数。