Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MySQL

MySQL में VARCHAR में संग्रहीत तारीखों के बीच BETWEEN खोज कैसे करें?


MySQL में STR_TO_DATE() का उपयोग करके VARCHAR तारीखों पर BETWEEN खोज

जब तारीखें VARCHAR में संग्रहीत होती हैं (जैसे '6/28/2011 9:58 AM'), तो STR_TO_DATE() से उन्हें DATE में बदलकर BETWEEN का उपयोग करें।

सिंटैक्स

SELECT * FROM yourTableName
WHERE STR_TO_DATE(LEFT(yourColumnName, LOCATE(' ', yourColumnName)), '%m/%d/%Y')
BETWEEN 'startDate' AND 'endDate';

उदाहरण

टेबल बनाएं:

mysql> create table SearchDateAsVarchar (
    -> Id int NOT NULL AUTO_INCREMENT,
    -> ShippingDate varchar(100),
    -> PRIMARY KEY(Id)
    -> );

डेटा डालें:

mysql> insert into SearchDateAsVarchar(ShippingDate) values('6/28/2011 9:58 AM');
mysql> insert into SearchDateAsVarchar(ShippingDate) values('6/18/2011 10:50:39 AM');
mysql> insert into SearchDateAsVarchar(ShippingDate) values('6/22/2011 11:45:40 AM');

20 जून से 28 जून 2011 के बीच खोजें:

mysql> select * from SearchDateAsVarchar
    -> where STR_TO_DATE(LEFT(ShippingDate, LOCATE(' ', ShippingDate)), '%m/%d/%Y')
    -> BETWEEN '2011-06-20' AND '2011-06-28';

परिणाम:

+----+-----------------------+
| Id | ShippingDate          |
+----+-----------------------+
|  1 | 6/28/2011 9:58 AM     |
|  3 | 6/22/2011 11:45:40 AM |
+----+-----------------------+

व्याख्या

  1. LOCATE(' ', ShippingDate): पहले स्पेस की स्थिति (समय से पहले)
  2. LEFT(..., pos): केवल दिनांक भाग निकालता है ('6/28/2011')
  3. STR_TO_DATE(..., '%m/%d/%Y'): स्ट्रिंग को DATE में बदलता है
  4. BETWEEN '2011-06-20' AND '2011-06-28': दिनांक सीमा फ़िल्टर

सामान्य दिनांक फॉर्मेट

फॉर्मेटउदाहरणSTR_TO_DATE पैटर्न
MM/DD/YYYY6/28/2011%m/%d/%Y
DD-MM-YYYY28-06-2011%d-%m-%Y
YYYY-MM-DD2011-06-28%Y-%m-%d
DD/MM/YYYY28/06/2011%d/%m/%Y

सिफारिश

तारीखों के लिए हमेशा DATE, DATETIME, या TIMESTAMP डेटा प्रकार का उपयोग करें। VARCHAR में तारीख संग्रहीत करने से बचें।

  1. - MySQL क्वेरी: दो तिथियों की सीमा के बीच सभी डेटा चुनें

    BETWEEN ऑपरेटर का उपयोग करके तिथि सीमा के बीच डेटा चुनना दो तिथियों की सीमा के बीच सभी डेटा चुनने के लिए MySQL BETWEEN का उपयोग करें: select * from yourTableName where yourColumnName between yourDateValue1 and yourDateValue2; पहले टेबल बनाएं: create table DemoTable1422 ( EmployeeId int NOT NULL AUT

  1. - MySQL में BETWEEN कीवर्ड का उपयोग करके दो तिथियों के बीच खोज करना

    MySQL BETWEEN के साथ दिनांक सीमा खोज MySQL में BETWEEN ऑपरेटर का उपयोग करके आप दो दिनांकों के बीच (समावेशी) आने वाले रिकॉर्ड्स ढूंढ सकते हैं। यह ऑफ़र वैधता, बुकिंग प्रणाली और समय-आधारित फ़िल्टरिंग के लिए उपयोगी है। उदाहरण: सक्रिय ऑफ़र ढूंढना SELECT * FROM DemoTable1456; +--------------+-----------

  1. - MySQL स्टोर्ड प्रोसीजर में पैरामीटर के साथ DELETE क्वेरी लागू करना

    MySQL स्टोर्ड प्रोसीजर में पैरामीटरीकृत DELETE स्टोर्ड प्रोसीजर इनपुट पैरामीटर स्वीकार करके पुन: प्रयोज्य, सुरक्षित DELETE संचालन को सक्षम करते हैं। यह SQL इंजेक्शन को रोकता है और कोड पुन: उपयोग को बढ़ावा देता है। उदाहरण: पैरामीटरीकृत DELETE प्रोसीजर SELECT * FROM DemoTable1464; +------+----------