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

MySQL में तारीख तुलना: दी गई रेंज के बीच की तारीखें कैसे प्राप्त करें?

MySQL में तारीख रेंज क्वेरी: BETWEEN और तुलना ऑपरेटर

MySQL में DATE, DATETIME, TIMESTAMP कॉलम की तुलना सीधे तुलना ऑपरेटर (>=, <=) या BETWEEN से की जा सकती है।

उदाहरण: एडमिशन तारीख जून से अगस्त 2019 के बीच

टेबल बनाएं:

CREATE TABLE DemoTable (AdmissionDate DATE);
INSERT INTO DemoTable VALUES ('2019-08-31'), ('2019-09-01'), ('2019-05-10'), ('2019-06-12');

डेटा:

+---------------+
| AdmissionDate |
+---------------+
| 2019-08-31    |
| 2019-09-01    |
| 2019-05-10    |
| 2019-06-12    |
+---------------+

तारीख रेंज क्वेरी: 2019-06-01 से 2019-08-31 तक

SELECT * FROM DemoTable 
WHERE AdmissionDate >= '2019-06-01' AND AdmissionDate <= '2019-08-31';

परिणाम:

+---------------+
| AdmissionDate |
+---------------+
| 2019-08-31    |
| 2019-06-12    |
+---------------+

BETWEEN का उपयोग (समतुल्य)

SELECT * FROM DemoTable 
WHERE AdmissionDate BETWEEN '2019-06-01' AND '2019-08-31';

महत्वपूर्ण: DATETIME/TIMESTAMP के लिए समय घटक

यदि कॉलम DATETIME है, तो '2019-08-31' का अर्थ '2019-08-31 00:00:00' होता है। उस दिन के बाद के समय शामिल नहीं होंगे।

सही तरीका: अगले दिन की शुरुआत तक

-- पिछले 30 दिन
WHERE AdmissionDate >= DATE_SUB(CURDATE(), INTERVAL 30 DAY)
  AND AdmissionDate <= CURDATE();

इंडेक्स उपयोग

AdmissionDate पर इंडेक्स होने से रेंज क्वेरी तेज होती है:

CREATE INDEX idx_admission_date ON DemoTable(AdmissionDate);
  1. - MySQL में BETWEEN ऑपरेटर का उपयोग करके विभिन्न मानों के बीच मान प्राप्त करना

    MySQL BETWEEN के साथ स्ट्रिंग रेंज फ़िल्टरिंग MySQL का BETWEEN ऑपरेटर संख्याओं और दिनांकों के अलावा स्ट्रिंग्स पर भी काम करता है, वर्ण क्रम (कोलेशन के आधार पर) का उपयोग करके। यह कोड, पहचानकर्ता या श्रेणियों के लिए रेंज फ़िल्टरिंग के लिए उपयोगी है। उदाहरण: कर्मचारी कोड रेंज SELECT * FROM DemoTable1

  1. - महीनों की एक श्रृंखला से रिकॉर्ड प्राप्त करने का MySQL क्वेरी?

    आइए पहले एक टेबल बनाते हैं: mysql> create table DemoTable1795 ( Name varchar(20), DueDate date ); Query OK, 0 rows affected (0.00 sec) इन्सर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें: mysql> insert into DemoTable1795 values(John,2018-07-21); Query OK, 1 row affected (0.00 sec)

  1. - MySQL टेबल में विशिष्ट तारीख की घटनाओं की गिनती कैसे करें?

    MySQL में किसी DATE कॉलम में विशिष्ट तारीख की घटनाओं (occurrences) को गिनने के लिए, COUNT(*) के साथ WHERE date(column) = target_date का उपयोग करें। यह सरल, कुशल, और इंडेक्स-अनुकूल है। उदाहरण: 2019-12-11 तारीख की गिनती डेमो टेबल बनाएं: mysql> CREATE TABLE DemoTable1946 (ShippingDate DATE); डेट