为什么这不起作用(当参数设置为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))
如果参数以浮点值给出,则有效。
答案 0 :(得分:2)
你想做什么?也许我会对更多细节更有帮助。
SELECT * FROM TABLE WHERE TIMESTAMPFIELD> (CURRENT_TIMESTAMP - ?)
如何在代码中设置参数?你用哪种语言?
如果您使用Delphi,那么您的参数应该作为Float传递。即:
MyQuery.ParamByName('delta').asFloat := 0.1;
试试这个并告诉我们它是否正常工作
HTH