Utilisation de CURRENT_TIMESTAMP, de l'opérateur arithmétique et du paramètre avec Firebird

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

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

Était-ce utile?

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top