代码之家  ›  专栏  ›  技术社区  ›  Harriv

使用当前时间戳、算术运算符和参数与Firebird

  •  4
  • Harriv  · 技术社区  · 16 年前

    为什么这不起作用(当参数设置为1时):

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

    但这是可行的:

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

    我收到错误消息: "conversion error from string "39723.991882951" "

    我用的是火鸟2.1

    编辑:

    我在一点帮助下找到了答案:

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

    如果参数被指定为浮点值,则工作。

    1 回复  |  直到 9 年前
        1
  •  2
  •   vIceBerg    16 年前

    你到底想做什么?也许我可以提供更多的细节帮助。

    从TimestampField>(当前时间戳-?)的表中选择*。

    如何在代码中设置参数?你用哪种语言?

    如果您使用delphi,那么您的参数应该作为float传递。Ie:

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

    试试这个,告诉我们它是否有效

    高温高压