Mit CURRENT_TIMESTAMP, arithmetischen Operator und Parametern mit Firebird

StackOverflow https://stackoverflow.com/questions/164516

  •  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.

War es hilfreich?

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
scroll top