दिनांक के साथ ऑपरेटर से अधिक उपयोग कैसे करें?


106

पता नहीं यहां क्या चल रहा है। यहाँ क्वेरी है, phpMyAdmin से दाईं ओर:

SELECT * FROM `la_schedule` WHERE 'start_date' >'2012-11-18';

लेकिन मुझे लगातार तालिका में सभी रिकॉर्ड मिलते हैं, जिसमें 2012-11-01 की शुरुआत तिथि भी शामिल है। क्या देता है?


1
क्या आपका प्रारंभ_ प्रकार का दिनांक या टाइमस्टैम्प का कॉलम है?
शामिस शुकूर

जवाबों:


190

आपने start_dateएकल उद्धरण के साथ उल्लेख किया है, जिसके कारण यह स्ट्रिंग बन गया है, backtickइसके बजाय उपयोग करें

SELECT * FROM `la_schedule` WHERE `start_date` > '2012-11-18';

1
क्या होता है अगर इसका टाइमस्टैम्प?
इचिमारू

यह ध्यान देता है कि MySQL दिनांक प्रारूप के बारे में थोड़ा अचारपूर्ण लगता है; जबकि या तो 2019/02/08 21:04:07 या 2019-02-08 21:04:07 अपेक्षित परिणाम का उत्पादन करता है, 02-08-2019 21:04:07, यूएस दिनांक प्रारूप का उपयोग करके, एक बहुत व्यापक जाल कास्ट करता है ।
डेविड ए। ग्रे

22

अपने बयान में, आप समय के साथ start_date नामक एक स्ट्रिंग की तुलना कर रहे हैं ।
यदि start_date एक स्तंभ है, तो यह या तो होना चाहिए

 
  SELECT * FROM `la_schedule` WHERE start_date >'2012-11-18';
 

(कोई एपोस्ट्रोफ) या


SELECT * FROM `la_schedule` WHERE `start_date` >'2012-11-18';

(बैकटिक्स के साथ)।

उम्मीद है की यह मदद करेगा।



2

मेरे मामले में मेरा कॉलम एक डेटाइम था जो मुझे सारे रिकॉर्ड देता रहा। मैंने समय को शामिल करने के लिए क्या किया, नीचे दिए गए उदाहरण देखें

SELECT * FROM my_table where start_date > '2011-01-01 01:01:01';

0

मैंने कोशिश की है लेकिन ऊपर समाधान के नीचे पाए गए शोध के बाद काम नहीं कर रहा है।

SELECT * FROM my_table where DATE(start_date) > '2011-01-01';

संदर्भ

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.