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

MySQL में MONTH() और YEAR() का उपयोग करके विशिष्ट महीने और वर्ष के रिकॉर्ड्स कैसे चुनें

MONTH() और YEAR() फंक्शन्स के साथ डेट फ़िल्टरिंग

विशिष्ट महीने और वर्ष के रिकॉर्ड्स चुनने के लिए MONTH() और YEAR() फंक्शन्स का उपयोग WHERE क्लॉज में करें।

आइए पहले एक टेबल बनाते हैं:

mysql> CREATE TABLE DemoTable (
    StudentName VARCHAR(40),
    StudentAdmissionDate DATE
);

रिकॉर्ड्स इन्सर्ट करें:

mysql> INSERT INTO DemoTable VALUES ('Chris', '2019-01-21');
mysql> INSERT INTO DemoTable VALUES ('Robert', '2018-09-05');
mysql> INSERT INTO DemoTable VALUES ('Mike', '2019-09-05');
mysql> INSERT INTO DemoTable VALUES ('David', '2019-10-04');

सभी रिकॉर्ड्स देखें:

mysql> SELECT * FROM DemoTable;

आउटपुट:

+-------------+----------------------+
| StudentName | StudentAdmissionDate |
+-------------+----------------------+
| Chris       | 2019-01-21           |
| Robert      | 2018-09-05           |
| Mike        | 2019-09-05           |
| David       | 2019-10-04           |
+-------------+----------------------+

सितंबर 2019 (महीना 09, वर्ष 2019) के रिकॉर्ड्स चुनने के लिए क्वेरी:

mysql> SELECT * FROM DemoTable
    WHERE MONTH(StudentAdmissionDate) = 09
    AND YEAR(StudentAdmissionDate) = 2019;

आउटपुट:

+-------------+----------------------+
| StudentName | StudentAdmissionDate |
+-------------+----------------------+
| Mike        | 2019-09-05           |
+-------------+----------------------+

व्याख्या:

  • MONTH(date): डेट से महीना (1-12) निकालता है
  • YEAR(date): डेट से 4-अंकीय वर्ष निकालता है
  • दोनों शर्तें AND से जुड़ी हैं, इसलिए दोनों पूरी होनी चाहिए
  • केवल Mike का प्रवेश सितंबर 2019 में है

प्रदर्शन विचार: डेट कॉलम पर फंक्शन (MONTH, YEAR) इंडेक्स उपयोग को रोकते हैं। बड़े टेबल्स के लिए रेंज क्वेरी बेहतर है:

WHERE StudentAdmissionDate >= '2019-09-01'
  AND StudentAdmissionDate < '2019-10-01'

यह इंडेक्स का उपयोग कर सकता है और अधिक कुशल है।

अन्य उपयोगी डेट फंक्शन्स:

  • DAY(date) - महीने का दिन (1-31)
  • QUARTER(date) - तिमाही (1-4)
  • WEEK(date) - वर्ष का सप्ताह (0-53)
  • DAYOFWEEK(date) - सप्ताह का दिन (1=रविवार)
  1. - MySQL में तिथि रिकॉर्ड वाले कॉलम से महीने के नाम और वर्ष प्रदर्शित करना

    DATE_FORMAT() का उपयोग करके DATETIME से महीना और वर्ष निकालना पहले टेबल बनाएं: create table DemoTable1619 ( ArrivalTime datetime ); Query OK, 0 rows affected (0.45 sec) रिकॉर्ड डालें: insert into DemoTable1619 values(2019-12-31); Query OK, 1 row affected (0.17 sec) सभी रिकॉर्ड देखें: select * fro

  1. - MySQL में INSERT ... SELECT क्वेरी का उपयोग कैसे करें?

    MySQL में INSERT ... SELECT स्टेटमेंट एक ही क्वेरी में एक तालिका से दूसरी तालिका में डेटा कॉपी करने या मानों की गणना करके डालने की अनुमति देता है। सिंटैक्स INSERT INTO target_table (col1, col2, col3, ...) SELECT col1, col2, col3, ... FROM source_table WHERE condition; उदाहरण: मानों को सीधे चुनकर ड

  1. - MySQL में MONTH() और YEAR() से विशिष्ट माह-वर्ष के रिकॉर्ड प्राप्त करें

    डेट कॉलम से माह और वर्ष निकालकर फ़िल्टर करने के लिए MySQL के MONTH() और YEAR() फ़ंक्शन का उपयोग करें। टेबल बनाएं mysql> CREATE TABLE DemoTable1846 ( PurchaseDate DATE ); डेटा डालें mysql> INSERT INTO DemoTable1846 VALUES(2019-01-10); mysql> INSERT INTO DemoTable1846 VALUES(2019-12-24)