1

このために特定の日付から年数を抽出しようとしていますが、正しい構文は次のとおりです

<date> - interval '5 years';

しかし、特定の年数を抽出するのではなく、ユーザーがパラメーターとして提供する変数を抽出したくありません。次の変数名を試してみました:

date+interval '% years',years;

エラーが発生しましたが、そのようにすることはできません。それを行う正しい方法は何でしょうか。

4

2 に答える 2

2

私はあなたが書くことができるはずだと信じています:

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

(免責事項:テストされていません。この種のことを最後に行ってから1年以上経ちました。)

于 2012-11-04T21:15:51.143 に答える
0

ルアクは正しいです。文字列連結を使用して間隔リテラルを作成し、キャストすることができます。

文字列の連結ではなく、日付計算を使用して間隔を作成することを好みます。それは、IMO、クリーナーです。

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

10ここで、希望する年数またはプレースホルダー パラメーターに置き換えることができます。

于 2012-11-04T22:59:13.750 に答える