FirebirdでCURRENT_TIMESTAMP、算術演算子、およびパラメーターを使用する

StackOverflow https://stackoverflow.com/questions/164516

  •  03-07-2019
  •  | 
  •  

質問

これが機能しない理由(パラメーターが1に設定されている場合):

SELECT * FROM TABLE WHERE TIMESTAMPFIELD > (CURRENT_TIMESTAMP - ?)

しかし、これは動作します:

SELECT * FROM TABLE WHERE TIMESTAMPFIELD > (CURRENT_TIMESTAMP - 1)

エラーメッセージが表示されます:" stringからの変換エラー" 39723.991882951" "

Firebird 2.1を使用しています

編集:

少し助けを借りて自分で答えを見つけました:

SELECT * FROM TABLE WHERE TIMESTAMPFIELD > (CURRENT_TIMESTAMP - CAST(? as DECIMAL(18,9))

パラメーターがfloat値として指定されている場合に機能します。

役に立ちましたか?

解決

正確に何をしたいですか?おそらく私はより多くの詳細でもっと役立つことができます。

  

SELECT * FROM TABLE WHERE TIMESTAMPFIELD> (CURRENT_TIMESTAMP-?)

コードでパラメータを設定するにはどうすればよいですか?どの言語を使用していますか

Delphiを使用する場合、パラメーターはFloatとして渡す必要があります。すなわち:

MyQuery.ParamByName('delta').asFloat := 0.1;

これを試して、動作するかどうかを教えてください

HTH

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top