在Firebird中使用CURRENT_TIMESTAMP,算术运算符和参数
时间:2020-03-06 15:02:59 来源:igfitidea点击:
为什么这样不起作用(当参数设置为1时):
SELECT * FROM TABLE WHERE TIMESTAMPFIELD > (CURRENT_TIMESTAMP - ?)
但这有效:
SELECT * FROM TABLE WHERE TIMESTAMPFIELD > (CURRENT_TIMESTAMP - 1)
我收到错误消息:"来自字符串" 39723.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传递。 IE:
MyQuery.ParamByName('delta').asFloat := 0.1;
试试这个,告诉我们是否有效
高温超导