Mit CURRENT_TIMESTAMP, arithmetischen Operator und Parametern mit Firebird
-
03-07-2019 - |
Frage
Warum funktioniert diese Arbeit (wenn der Parameter auf 1 gesetzt ist):
SELECT * FROM TABLE WHERE TIMESTAMPFIELD > (CURRENT_TIMESTAMP - ?)
Aber das funktioniert:
SELECT * FROM TABLE WHERE TIMESTAMPFIELD > (CURRENT_TIMESTAMP - 1)
Ich bekomme Fehlermeldung: "conversion error from string "39723.991882951" "
Ich bin mit Firebird 2.1
EDIT:
fand ich die Antwort selbst mit einer wenig Hilfe:
SELECT * FROM TABLE WHERE TIMESTAMPFIELD > (CURRENT_TIMESTAMP - CAST(? as DECIMAL(18,9))
funktioniert, wenn der Parameter als float-Wert angegeben wird.
Lösung
Was möchten Sie tun genau das tun? Vielleicht kann ich mehr hilfreich mit mehr Details sein.
SELECT * FROM TABELLE WHERE TIMESTAMPFIELD> (CURRENT_TIMESTAMP? -)
Wie stellen Sie Ihre Parameter in Ihrem Code? Welche Sprache benutzen Sie?
Wenn Sie Delphi verwenden, dann Parameter sollte als Float übergeben werden. Dh:
MyQuery.ParamByName('delta').asFloat := 0.1;
Versuchen Sie dies und uns sagen, ob es funktioniert
HTH
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow