Utilizzando CURRENT_TIMESTAMP, operatore aritmetico e parametro con Firebird
-
03-07-2019 - |
Domanda
Perché non funziona (quando il parametro è impostato su 1):
SELECT * FROM TABLE WHERE TIMESTAMPFIELD > (CURRENT_TIMESTAMP - ?)
Ma funziona:
SELECT * FROM TABLE WHERE TIMESTAMPFIELD > (CURRENT_TIMESTAMP - 1)
Ricevo il messaggio di errore: " errore di conversione dalla stringa " 39723.991882951 " & Quot;
Sto usando Firebird 2.1
Modifica
Ho trovato la risposta da solo con un piccolo aiuto:
SELECT * FROM TABLE WHERE TIMESTAMPFIELD > (CURRENT_TIMESTAMP - CAST(? as DECIMAL(18,9))
Funziona se il parametro è indicato come valore float.
Soluzione
Cosa vuoi fare esattamente? Forse posso essere più utile con maggiori dettagli.
SELEZIONA * DALLA TABELLA DOVE TIMESTAMPFIELD > (CURRENT_TIMESTAMP -?)
Come si imposta il parametro nel codice? Quale lingua usi?
Se usi Delphi, il tuo parametro dovrebbe essere passato come Float. Vale a dire:
MyQuery.ParamByName('delta').asFloat := 0.1;
Prova questo e dicci se funziona
HTH
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow