• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:日付演算のSQLで困っています。)

日付演算のSQLで困っています

このQ&Aのポイント
  • SQLで日付演算を行う際に可変な文字列を使用する方法について悩んでいます。
  • varchar変数を使用して実行しようとした際にエラーが発生します。
  • 良いアイデアや問題点についてのご意見をいただきたいです。

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

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

質問の答えになっているかどうかわかりませんが '3 second'をvarcharではなくinterval型にしたらどうでしょうか。 下記の例だとちゃんと計算できるようです。(postgresql 8.3) select timestamp '2009-01-15 18:23:05.872415+09' + interval '3 second';

baunce
質問者

お礼

yasumituさん アドバイスありがとうございます。 ご指摘の通り、interval型にすると 問題なく動作しました。 良く考えてみると、当初私が理解していた以下SQL(1)は 「interval」句が省略されていて、以下SQL(2)が本来の形 なのですね。 (1) select current_timestamp + '3 seconds'; (2) select current_timestamp + interval '3 seconds'; 上記SQL(1)では暗黙の型変換(char→interval)がされているのだと理解しました。 ※上記の問題がクリアできなかった為、今日は「応急措置」として 以下のようにUNIX時間(秒)に一度変換して計算していましたが これで明日はちゃんと対応できます。 (本日の応急措置) SELECT round(EXTRACT(EPOCH FROM current_timestamp)); すっきりしました。 ありがとうございました。

関連するQ&A