こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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

postgresの関数内で変数からの時間の足し算の仕方を教えてください。


DECLARE
result timestamp with time zone;
l_minuteinteger := 15;
BEGIN
result := current_timestamp + '15 minute';
RETURN result;
END;


このように
直接「 + '15 minute'」を足す方法は分かるのですが、
例えば、上記のユーザー変数l_minuteを使っての足し算がの仕方が分かりません。
よろしくお願いします。

投稿日時 - 2017-03-21 14:08:52

QNo.9307783

すぐに回答ほしいです

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

以下の形で実現できると思います。

result := current_timestamp + '15 minute';

SELECT current_timestamp + CAST( l_minuteinteger || ' minute' AS interval ) INTO result;

投稿日時 - 2017-03-21 15:32:04

お礼

有難うございます。

'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;

値のセットの方法はあんまり関係なさそうです。

投稿日時 - 2017-03-21 16:51:20

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)