Usando CURRENT_TIMESTAMP, operador aritmético y parámetro con Firebird
-
03-07-2019 - |
Pregunta
¿Por qué no funciona esto (cuando el parámetro se establece en 1):
SELECT * FROM TABLE WHERE TIMESTAMPFIELD > (CURRENT_TIMESTAMP - ?)
Pero esto funciona:
SELECT * FROM TABLE WHERE TIMESTAMPFIELD > (CURRENT_TIMESTAMP - 1)
Recibo un mensaje de error: " error de conversión de la cadena " 39723.991882951 " "
Estoy usando Firebird 2.1
EDIT:
Encontré la respuesta yo mismo con un poco de ayuda:
SELECT * FROM TABLE WHERE TIMESTAMPFIELD > (CURRENT_TIMESTAMP - CAST(? as DECIMAL(18,9))
Funciona si el parámetro se da como valor flotante.
Solución
¿Qué quieres hacer exactamente? Tal vez pueda ser más útil con más detalles.
SELECCIONAR * DE LA TABLA DONDE TIMESTAMPFIELD > (CURRENT_TIMESTAMP -?)
¿Cómo configura su parámetro en su código? ¿Qué idioma usas?
Si usa Delphi, entonces su parámetro debe pasarse como Float. Es decir:
MyQuery.ParamByName('delta').asFloat := 0.1;
Prueba esto y dinos si está funcionando
HTH
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow