使用CURRENT_TIMESTAMP,算术运算符和Firebird参数
-
03-07-2019 - |
题
为什么这不起作用(当参数设置为1时):
SELECT * FROM TABLE WHERE TIMESTAMPFIELD > (CURRENT_TIMESTAMP - ?)
但这有效:
SELECT * FROM TABLE WHERE TIMESTAMPFIELD > (CURRENT_TIMESTAMP - 1)
我收到错误消息:" string error from 39603.991882951" " 代码>
我正在使用Firebird 2.1
修改强>
我在一点帮助下找到了答案:
SELECT * FROM TABLE WHERE TIMESTAMPFIELD > (CURRENT_TIMESTAMP - CAST(? as DECIMAL(18,9))
如果参数以浮点值给出,则有效。
解决方案
你想做什么?也许我会对更多细节更有帮助。
SELECT * FROM TABLE WHERE TIMESTAMPFIELD> (CURRENT_TIMESTAMP - ?)
如何在代码中设置参数?你用哪种语言?
如果您使用Delphi,那么您的参数应该作为Float传递。即:
MyQuery.ParamByName('delta').asFloat := 0.1;
试试这个并告诉我们它是否正常工作
HTH
不隶属于 StackOverflow