باستخدام CURRENT_TIMESTAMP والحساب مشغل المعلمة مع فايربيرد
-
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
لا تنتمي إلى StackOverflow