2011-08-03 16 views
8

है, मैं पिछले 10 दिनों में दर्ज किए गए परिणामों के लिए अपनी क्वेरी को सीमित करना चाहता हूं। TIMESTAMP कॉलम को दिनांक कहा जाता है। मैं यह कैसे करुं?MySQL केवल तभी चुनें जहां टिमस्टैम्प पिछले 10 दिनों से

$result = mysql_query("SELECT * FROM Posts WHERE (City = '$city2') ORDER by Comments DESC LIMIT 5"); 

धन्यवाद

उत्तर

20
SELECT * 
FROM Comments 
WHERE (City = '$city2') AND (`Date` > DATE_SUB(now(), INTERVAL 10 DAY)); 

नोट: बुला एक कॉलम 'तिथि', गरीब अभ्यास है, क्योंकि यह एक आरक्षित शब्द है।

+0

... और कैसे !!!!! – Keng

+0

क्षमा करें, मैंने गलत क्वेरी पोस्ट की है। मैंने इसका इस्तेमाल करने की कोशिश की, यह ठीक दिखता है लेकिन मुझे कोई परिणाम नहीं मिला है। हालांकि कल मेरे सभी पोस्ट जहां इनपुट किया गया। (1 दिन दूर)। – lisovaccaro

+2

पुष्टि करें कि आपके दिनांक फ़ील्ड में उचित तिथियां हैं, और वास्तव में एक डेटाटाइम फ़ील्ड है। यदि यह एक int (उदा। यूनिक्स टाइमस्टैम्प) है, तो यह क्वेरी काम नहीं करेगी और आपको उचित रूप से परिवर्तित करने के लिए unix_timestamp/from_unixtime का उपयोग करना होगा। –

3

date_sub

select * from Comments 
where City = '{$city2}' and 
`Date` > date_sub(now(), interval 10 day) 
12

साथ प्रयास करें आप DATEDIFF उपयोग कर सकते हैं या, के रूप में पहले से ही तैनात, DATE_SUB। साथ ही, मैं कॉलम नामों के लिए "दिनांक" जैसे आरक्षित शब्दों का उपयोग नहीं करने का सुझाव देता हूं। अपने कोड के लिए उदाहरण:

WHERE DATEDIFF(NOW(), `Date`) < 10 
+0

यह <<= '10 होगा? – Keng

+0

मुझे लगता है, हाँ। – Andrew

संबंधित मुद्दे