2012-03-15 16 views
5

मेरे पास यह प्रश्न है जो पिछले बीस मिनट के लिए डेटाबेस से परिणाम देखता है, अब मुझे पता है कि घंटों, दिन आदि में कैसे देखना है, लेकिन क्या यह केवल दूर तक देखना संभव है उस दिन के मध्यरात्रि के रूप में वापस। तो जब कभी क्वेरी चलती है और क्या कभी भी मध्यरात्रि तक ही दिखता है?MySQL प्रश्न केवल आधी रात को प्रश्न

SELECT * FROM ip_stats WHERE date >= (NOW() - INTERVAL 20 MINUTE) and ip='$ip' 

यह मेरा कोड है, लेकिन है, जिसमें मैं एक विशेष समय के लिए अंतराल की जगह ले सकता वहाँ दूर है।

किसी भी मदद की सराहना की जाएगी।

+0

आप mysql DATE_FORMAT() और अब उपयोग कर सकते हैं() –

उत्तर

22

वापस वर्तमान दिन के आधी रात को खोज रहे हैं कुछ ही समय घटक के साथ आज की तारीख को देख के समान है। इसलिए आप DATE() का उपयोग डेटाटाइम कॉलम date को केवल दिनांक भाग में ट्यून करने के लिए कर सकते हैं, और इसकी तुलना CURDATE() से करें।

SELECT * FROM ip_stats WHERE DATE(date) = CURDATE() and ip='$ip' 
+0

कि काम सही धन्यवाद, मैं पता नहीं क्यों मैंने इसके बारे में नहीं सोचा था। –

+0

मुझे लगता है कि यह वर्तमान दिन से रिकॉर्ड प्राप्त करने का एकदम सही समाधान है। –

0

बस कॉलम datecurdate (जो इस दिन की शुरुआत है) से बड़ा हो।

SELECT * FROM ip_stats 
WHERE date >= (NOW() - INTERVAL 20 MINUTE) 
and date > CURDATE() 
and ip='$ip' 
+1

आप चाहते करने जा रहे हैं एक> =, नहीं एक> – Jason

0

आप वर्तमान दिन के आधी रात के बाद से पंक्तियां प्राप्त करने के CURDATE() उपयोग कर सकते हैं:

SELECT * FROM ip_stats WHERE date >= CURDATE() and ip='$ip' 
1
SELECT * FROM ip_stats WHERE date >= (NOW() - INTERVAL 20 MINUTE) AND date >= CURDATE() and ip='$ip' 
0
SELECT * 
FROM ip_stats 
WHERE date >= GREATEST(NOW() - INTERVAL 20 MINUTE, CURRENT_DATE) 
AND ip = '$ip' 
संबंधित मुद्दे