4

これが機能しないのはなぜですか (パラメーターが 1 に設定されている場合):

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

しかし、これは機能します:

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

エラーメッセージが表示されます:"conversion error from string "39723.991882951" "

Firebird 2.1を使用しています

編集:

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

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

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

4

1 に答える 1

2

正確に何をしたいですか?多分私はより詳細に役立つことができます。

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

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

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

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

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

HTH

于 2008-10-02T20:56:05.730 に答える