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

MySQL में आज की तारीख दो DATE कॉलम के बीच वाली पंक्तियाँ कैसे चुनें?


AND ऑपरेटर के साथ BETWEEN तर्क का उपयोग करें

आज की तारीख (या कोई विशिष्ट तारीख) दो तारीख कॉलम के बीच आने वाली पंक्तियाँ खोजने के लिए, दोनों शर्तों को AND से जोड़ें।

सिंटैक्स

SELECT * FROM yourTableName 
WHERE yourStartDateColumn <= 'yourDateValue' 
  AND yourEndDateColumn >= 'yourDateValue';

व्यावहारिक उदाहरण

टेबल बनाना

mysql> CREATE TABLE selectDates (
    Id INT NOT NULL AUTO_INCREMENT,
    StartingDate DATE,
    EndingDate DATE,
    PRIMARY KEY(Id)
);

डेटा डालना

mysql> INSERT INTO selectDates(StartingDate, EndingDate) VALUES('2019-01-11', '2019-01-23');
mysql> INSERT INTO selectDates(StartingDate, EndingDate) VALUES('2019-01-10', '2019-01-23');
mysql> INSERT INTO selectDates(StartingDate, EndingDate) VALUES('2019-01-30', '2019-01-30');
mysql> INSERT INTO selectDates(StartingDate, EndingDate) VALUES('2019-10-14', '2019-10-28');
mysql> INSERT INTO selectDates(StartingDate, EndingDate) VALUES('2019-10-14', '2019-10-20');
mysql> INSERT INTO selectDates(StartingDate, EndingDate) VALUES('2019-11-17', '2019-11-19');
mysql> INSERT INTO selectDates(StartingDate, EndingDate) VALUES('2019-12-21', '2019-12-31');
mysql> INSERT INTO selectDates(StartingDate, EndingDate) VALUES('2019-01-06', '2019-01-21');
mysql> INSERT INTO selectDates(StartingDate, EndingDate) VALUES('2019-01-07', '2019-01-17');

सभी रिकॉर्ड

+----+--------------+------------+
| Id | StartingDate | EndingDate |
+----+--------------+------------+
|  1 | 2019-01-11   | 2019-01-23 |
|  2 | 2019-01-10   | 2019-01-23 |
|  3 | 2019-01-30   | 2019-01-30 |
|  4 | 2019-10-14   | 2019-10-28 |
|  5 | 2019-10-14   | 2019-10-20 |
|  6 | 2019-11-17   | 2019-11-19 |
|  7 | 2019-12-21   | 2019-12-31 |
|  8 | 2019-01-06   | 2019-01-21 |
|  9 | 2019-01-07   | 2019-01-17 |
+----+--------------+------------+

क्वेरी: '2019-01-10' के बीच वाली पंक्तियाँ

mysql> SELECT * FROM selectDates 
WHERE StartingDate <= '2019-01-10' 
  AND EndingDate >= '2019-01-10';

आउटपुट

+----+--------------+------------+
| Id | StartingDate | EndingDate |
+----+--------------+------------+
|  2 | 2019-01-10   | 2019-01-23 |
|  8 | 2019-01-06   | 2019-01-21 |
|  9 | 2019-01-07   | 2019-01-17 |
+----+--------------+------------+

डायनामिक "आज" के लिए

SELECT * FROM selectDates 
WHERE StartingDate <= CURDATE() 
  AND EndingDate >= CURDATE();

BETWEEN ऑपरेटर का उपयोग (समान)

SELECT * FROM selectDates 
WHERE '2019-01-10' BETWEEN StartingDate AND EndingDate;

मुख्य बिंदु

  • शुरुआत की तारीख <= लक्ष्य तारीख और अंत की तारीख >= लक्ष्य तारीख होनी चाहिए।
  • BETWEEN समावेशी है (दोनों सिरे शामिल)।
  • डायनामिक "आज" के लिए CURDATE() या NOW() (डेटाटाइम के लिए) उपयोग करें।
  • StartingDate और EndingDate पर इंडेक्स प्रदर्शन में सुधार करते हैं।
  1. - MySQL में GROUP BY और HAVING से isMarried=0 वाली पंक्तियां चुनें और ClientId द्वारा समूहित करें

    MySQL में किसी कॉलम का मान विशिष्ट मान (जैसे isMarried = 0) होने वाली पंक्तियों को चुनकर, दूसरे कॉलम (ClientId) द्वारा समूहित करने के लिए GROUP BY के साथ HAVING का उपयोग करें। ध्यान दें: यह पैटर्न MySQL के ONLY_FULL_GROUP_BY मोड पर निर्भर करता है। सिंटैक्स SELECT column1, column2, filter_column FRO

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

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

  1. - MySQL में DATEDIFF() का उपयोग करके समान पंक्तियों के अलग-अलग कॉलम से दो दिनांकों के बीच दिनों की गणना करना

    MySQL DATEDIFF() के साथ दो दिनांक कॉलम के बीच अंतर एक ही पंक्ति में दो दिनांक कॉलम के बीच दिनों की संख्या की गणना करने के लिए, सीधे उन कॉलम पर DATEDIFF() का उपयोग करें। यह रोजगार अवधि, परियोजना अवधि, किराया अवधि आदि के लिए उपयोगी है। उदाहरण: कर्मचारी कार्य दिवस गणना SELECT * FROM DemoTable1471; +-