2010-01-25 22 views
5

मैं इसे MySQL में कैसे कर सकता हूं?MySQL - चुनें जहां दिनांक <X

SELECT * FROM MyTable WHERE MyDateCol < TODAY() 

मैं इस विषय पर एक बहुत googled और वास्तव में जो आसानी से पर्याप्त ऊपर की व्याख्या नहीं करता "MySQL तारीख रेफरी में देखने के लिए" के अलावा कुछ भी नहीं मिला।

मैं जानता हूँ कि मैं जिसके बाद थोड़े अप्रत्यक्ष है कर सकते हैं:

SELECT * FROM MyTable WHERE MyDateCol BETWEEN (0000-00-00) AND TODAY() 

उत्तर

4

MySQL में, आप curdate() funciton, कि आप आज की तारीख मिल जाएगा है।

तो, कुछ इस तरह करना चाहिए:

select * 
from your_table 
where your_date_column < curdate() 


कि समारोह के मैनुअल के पृष्ठ का हवाला देते हुए:

'YYYY-MM-DD' या YYYYMMDD प्रारूप में मान के रूप में वर्तमान दिनांक देता है, इस पर निर्भर करता है कि फ़ंक्शन स्ट्रिंग या न्यूमेरिक संदर्भ में उपयोग किया गया है या नहीं।

एक मूल्य के रूप में वर्तमान दिनांक और समय देता है:


और अगर आप वर्तमान समय (और केवल दिन नहीं) को तुलना करना चाहते हैं, तो आप now() समारोह का उपयोग कर सकते 'YYYY-MM-DD HH:MM:SS' या YYYYMMDDHHMMSS.uuuuuu प्रारूप में

+0

YYYYMMDD सांख्यिक प्रारूप के बारे में, 2010-मार्च -27 बन जाएगा 20,100,327 या इसे मैं एक सर्वर है जिस पर मैं अभी कोशिश कर सकते हैं की जरूरत नहीं है 2,040 –

+1

की दशमलव वर्धित मूल्य होगा, लेकिन मैनुअल पर विचार YYYYMMDD कहता है, मुझे लगता है कि आपको 20100327 मिलेगा, और कोई अतिरिक्त परिणाम नहीं होगा - जिसके साथ काम करना मुश्किल होगा। –

+0

मैंने इसे अपने स्थानीय MySQL सर्वर से सत्यापित कर लिया है, यह 20100327 जैसी संख्याओं का उपयोग करता है जो तुलना करना वास्तव में आसान बनाता है। आप संख्यात्मक तुलना के लिए स्ट्रिंग दिनांक को सीधे किसी संख्या पर भी कास्ट कर सकते हैं .. '" 2010-03-27 "=>" 20100327 "=> 20100327' –

1

उपयोग NOW() समारोह:

SELECT * FROM MyTable WHERE MyDateCol < NOW() 
2

MySQL SYSDATE का समर्थन करता है, तो आप उस के बजाय, का उपयोग करना चाहिए NOW() या CURDATE() के बाद से इसे और अधिक मानक है।

SELECT * FROM MyTable WHERE MyDateCol < SYSDATE; 
संबंधित मुद्दे