باستخدام CURRENT_TIMESTAMP والحساب مشغل المعلمة مع فايربيرد

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

  •  03-07-2019
  •  | 
  •  

سؤال

لماذا لا هذا العمل (عند تعيين المعلمة إلى 1) :

SELECT * FROM TABLE WHERE TIMESTAMPFIELD > (CURRENT_TIMESTAMP - ?)

ولكن هذا يعمل :

SELECT * FROM TABLE WHERE TIMESTAMPFIELD > (CURRENT_TIMESTAMP - 1)

أحصل على رسالة الخطأ: "conversion error from string "39723.991882951" "

أنا باستخدام فايربيرد 2.1

تحرير:

وجدت الجواب نفسي مع القليل من المساعدة:

SELECT * FROM TABLE WHERE TIMESTAMPFIELD > (CURRENT_TIMESTAMP - CAST(? as DECIMAL(18,9))

يعمل إذا كانت المعلمة هو تعويم قيمة.

هل كانت مفيدة؟

المحلول

ماذا تريد أن تفعل بالضبط ؟ ربما أنا يمكن أن يكون مفيدا أكثر مع مزيد من التفاصيل.

SELECT * FROM TABLE WHERE TIMESTAMPFIELD > (CURRENT_TIMESTAMP - ?)

كيف يمكنك تعيين المعلمة في الكود ؟ اللغة التي تستخدمها ؟

إذا كنت تستخدم دلفي ، ثم المعلمة يجب أن تكون مرت على تعويم.أي:

MyQuery.ParamByName('delta').asFloat := 0.1;

جرب هذا و يقول لنا ما اذا كان يعمل

HTH

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top