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

MySQL में YEAR() फ़ंक्शन का उपयोग करके विशिष्ट वर्ष के रिकॉर्ड प्राप्त करना

MySQL में YEAR() फ़ंक्शन का उपयोग करके DATETIME/DATE कॉलम से वर्ष निकालें और विशिष्ट वर्ष के रिकॉर्ड फ़िल्टर करें।

सिंटैक्स

SELECT * FROM yourTableName WHERE YEAR(yourColumnName) = yourYearValue;

उदाहरण: टेबल बनाना और डेटा डालना

mysql> CREATE TABLE DemoTable (
    -> CustomerName VARCHAR(100),
    -> ShippingDate DATETIME
    -> );
Query OK, 0 rows affected (0.64 sec)
mysql> INSERT INTO DemoTable VALUES
    -> ('Chris', '2019-01-21'),
    -> ('Robert', '2018-02-21'),
    -> ('David', '2016-04-01');

सभी रिकॉर्ड देखना

mysql> SELECT * FROM DemoTable;

आउटपुट

+--------------+---------------------+
| CustomerName | ShippingDate        |
+--------------+---------------------+
| Chris        | 2019-01-21 00:00:00 |
| Robert       | 2018-02-21 00:00:00 |
| David        | 2016-04-01 00:00:00 |
+--------------+---------------------+
3 rows in set (0.00 sec)

वर्ष 2016 के रिकॉर्ड प्राप्त करना

mysql> SELECT * FROM DemoTable WHERE YEAR(ShippingDate) = 2016;

आउटपुट

+--------------+---------------------+
| CustomerName | ShippingDate        |
+--------------+---------------------+
| David        | 2016-04-01 00:00:00 |
+--------------+---------------------+
1 row in set (0.04 sec)

संबंधित फ़ंक्शन:

  • MONTH(date) - महीना (1-12)
  • DAY(date) - दिन (1-31)
  • QUARTER(date) - तिमाही (1-4)
  • WEEK(date) - सप्ताह संख्या
  • DAYOFWEEK(date) - सप्ताह का दिन (1=रविवार)

प्रदर्शन चेतावनी: YEAR(col) = 2016 इंडेक्स उपयोग को रोकता है।

इंडेक्स-अनुकूल विकल्प (रेंज क्वेरी):

WHERE ShippingDate >= '2016-01-01' AND ShippingDate < '2017-01-01'

यह ShippingDate पर इंडेक्स का उपयोग करने की अनुमति देता है।

वर्ष रेंज के लिए:

WHERE YEAR(ShippingDate) BETWEEN 2015 AND 2018
  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 में AND और OR ऑपरेटर के साथ विशिष्ट रिकॉर्ड कैसे प्राप्त करें

    उदाहरण टेबल बनाएं: ); डेटा डालें: INSERT INTO DemoTable2015 VALUES (4, Robert, US); क्वेरी StudentName=David OR (StudentCountryName=UK AND StudentId=3): WHERE StudentName = David OR StudentCountryName = UK AND StudentId = 3; परिणाम +-----------+-------------+--------------------+ | Stu

  1. - MySQL में टेबल A की तुलना में टेबल B में नहीं होने पर टेबल C में डेटा डालें

    समाधान टेबल A और B पर LEFT JOIN का उपयोग करें, जहां B में मेल नहीं खाता वहां के रिकॉर्ड टेबल C में डालें। उदाहरण टेबल A (demo20): INSERT INTO demo20 VALUES (100,John), (101,Bob), (102,Mike), (103,Carol); टेबल B (demo21): INSERT INTO demo21 VALUES (100,Sam), (101,Adam), (133,Bob), (145,David); ट