Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/85.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中为日期变量提供由整数变量组成的间隔_Sql_Postgresql_Date - Fatal编程技术网

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

如何在Postgresql中为日期变量提供由整数变量组成的间隔,sql,postgresql,date,Sql,Postgresql,Date,我试图从一个特定的日期中提取年数,正确的语法是 <date> - interval '5 years'; 我犯了一个错误,它不允许我这样做。正确的方法是什么。我相信你应该能够写: specific_date + (number_of_years || ' years')::INTERVAL (免责声明:未经测试,距离我上次做这种事情已经一年多了。)鲁克是对的;您可以使用字符串连接来创建一个区间文字,然后对其进行强制转换 我更喜欢使用日期数学来创建间隔,而不是字符串连接。依我看,它

我试图从一个特定的日期中提取年数,正确的语法是

<date> - interval '5 years';

我犯了一个错误,它不允许我这样做。正确的方法是什么。

我相信你应该能够写:

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

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

鲁克是对的;您可以使用字符串连接来创建一个区间文字,然后对其进行强制转换

我更喜欢使用日期数学来创建间隔,而不是字符串连接。依我看,它更干净

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

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

如果您发现自己使用了“获取错误”、“不让我这样做”或“它不起作用”等短语,请:将它们删除并替换为特定的描述,或者最好是错误消息的确切文本。提及您的客户机语言和数据库驱动程序通常也会有所帮助。在所有问题中,请提及您的PostgreSQL版本。
SELECT DATE '2012-01-01' + 10 * INTERVAL '1' YEAR;