为什么这不起作用(当参数设置为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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top