• ベストアンサー

postgresの関数内で変数からの時間の足し算

postgresの関数内で変数からの時間の足し算の仕方を教えてください。 DECLARE result timestamp with time zone; l_minuteinteger := 15; BEGIN result := current_timestamp + '15 minute'; RETURN result; END; このように 直接「 + '15 minute'」を足す方法は分かるのですが、 例えば、上記のユーザー変数l_minuteを使っての足し算がの仕方が分かりません。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • kozax05
  • ベストアンサー率100% (2/2)
回答No.1

以下の形で実現できると思います。 result := current_timestamp + '15 minute'; ↓ SELECT current_timestamp + CAST( l_minuteinteger || ' minute' AS interval ) INTO result;

questorfe
質問者

お礼

有難うございます。 '15 minute' この部分は文字列ではなくて、intervalという名の時刻計算用の特殊属性なのですね。 やっと意味が分かってきました。 分割してみたらスッキリ理解できました。 l_minute_num integer := 15; l_minute_itv interval := CAST( l_minute_num || ' minute' AS interval ); result := current_timestamp + l_minute_itv; 値のセットの方法はあんまり関係なさそうです。