FirebirdでCURRENT_TIMESTAMP、算術演算子、およびパラメーターを使用する
-
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
所属していません StackOverflow