Utilisation de CURRENT_TIMESTAMP, de l'opérateur arithmétique et du paramètre avec Firebird
-
03-07-2019 - |
Question
Pourquoi cela ne fonctionne-t-il pas (lorsque le paramètre est défini sur 1):
SELECT * FROM TABLE WHERE TIMESTAMPFIELD > (CURRENT_TIMESTAMP - ?)
Mais cela fonctionne:
SELECT * FROM TABLE WHERE TIMESTAMPFIELD > (CURRENT_TIMESTAMP - 1)
Je reçois un message d'erreur: "Erreur de conversion de la chaîne" 39723.991882951 " "
J'utilise Firebird 2.1
EDIT:
J'ai trouvé la réponse moi-même avec un peu d'aide:
SELECT * FROM TABLE WHERE TIMESTAMPFIELD > (CURRENT_TIMESTAMP - CAST(? as DECIMAL(18,9))
Fonctionne si le paramètre a la valeur float.
La solution
Que voulez-vous faire exactement? Peut-être que je peux être plus utile avec plus de détails.
SÉLECTIONNEZ * DE LA TABLE O TIMESTAMPFIELD > (CURRENT_TIMESTAMP -?)
Comment définissez-vous votre paramètre dans votre code? Quelle langue utilisez-vous?
Si vous utilisez Delphi, votre paramètre doit alors être passé en tant que Float. C'est à dire:
MyQuery.ParamByName('delta').asFloat := 0.1;
Essayez ceci et dites-nous s'il fonctionne
HTH