आप चाहते हैं TIME()
, नहीं HOUR()
।
SELECT * FROM cdr_table
WHERE OwnerUserID = '$_SESSION[user_id]'
AND GatewayID = $gateway_id
AND DATE(Dialed) = $date_sql
AND Dialed != 0
AND TIME(StartTime) BETWEEN '$start_time' AND '$end_time'
साथ ही, मैं दृढ़ता से mysql_real_escape_string()
के साथ SQL कोड में एम्बेड किए जा रहे सभी वैरिएबल से बचने का सुझाव दें
या समकक्ष, भले ही आप सुनिश्चित हों कि उनमें कुछ भी हानिकारक नहीं है, बस इसे एक आदत बनाने के लिए।
ध्यान दें कि इस तरह की क्वेरी आंतरिक रूप से अक्षम हो सकती है, क्योंकि यह StartTime
पर अनुक्रमणिका का उपयोग नहीं कर सकती है। कॉलम। यदि तालिका में संभावित रूप से मेल खाने वाली बहुत सी पंक्तियाँ हैं, तो केवल को संग्रहीत करने के लिए एक अलग कॉलम बनाकर अपनी तालिका को असामान्य बनाना एक अच्छा विचार हो सकता है StartTime
. का समय भाग और उस पर एक इंडेक्स सेट करना (संभवतः अन्य प्रासंगिक कॉलम के साथ संयुक्त)।