जब डेटा प्रकारों की बात आती है तो स्मृति प्रश्नों (क्यूओक्यू) में मुश्किल हो सकती है। वे एक डेटाबेस की तुलना में निहित डेटा प्रकार रूपांतरणों के बारे में बहुत कम जानकार हैं। MySQL के date_format
. का उपयोग करके फ़ंक्शन, आप वास्तव में डेटाटाइम मानों को स्ट्रिंग्स . में परिवर्तित कर रहे हैं . इसलिए जब आप अपना QoQ चलाते हैं, तो CF वास्तव में स्ट्रिंग . का प्रदर्शन कर सकता है तुलना, जो किसी तारीख . से बहुत अलग परिणाम देगा तुलना। समझा सकता है कि आपको गलत परिणाम क्यों मिल रहे हैं।
अपना डेटाबेस बदलने का प्रयास करें स्ट्रिंग के बजाय डेटाटाइम मान वापस करने के लिए क्वेरी:
SELECT
COUNT(Timedetail) as Occurances
, STR_TO_DATE( DATE_FORMAT(Timedetail,'%m-%d-%Y'), '%m-%d-%Y') AS Timedetail
FROM ....
WHERE ...
अपडेट करें:
एक अन्य विकल्प यह है कि मान को DATE
. के रूप में कास्ट करें आपके क्यूओक्यू में। यह QoQ को स्ट्रिंग तुलना के बजाय दिनांक तुलना करने के लिए बाध्य करेगा:
WHERE CAST(Timedetail AS DATE) >= <cfqueryparam value="#form.startdate#"
cfsqltype="cf_sql_date">