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

MySQL में टाइमस्टैम्प के भागों (वर्ष, महीना, दिन) के आधार पर चयन कैसे करें?

MySQL तारीख/समय फंक्शन: टाइमस्टैम्प के भागों द्वारा फ़िल्टर करना

MySQL में YEAR(), MONTH(), DAY(), HOUR(), आदि फंक्शन का उपयोग करके TIMESTAMP, DATETIME, या DATE कॉलम के विशिष्ट भागों के आधार पर फ़िल्टर कर सकते हैं।

उदाहरण: वर्ष 2017 के रिकॉर्ड चुनें

टेबल बनाएं:

CREATE TABLE DemoTable (AdmissionDate TIMESTAMP);
INSERT INTO DemoTable VALUES ('2007-01-10'), ('2015-07-12'), ('2017-11-01'), ('2019-08-29');

डेटा:

+---------------------+
| AdmissionDate       |
+---------------------+
| 2007-01-10 00:00:00 |
| 2015-07-12 00:00:00 |
| 2017-11-01 00:00:00 |
| 2019-08-29 00:00:00 |
+---------------------+

वर्ष के आधार पर फ़िल्टर

SELECT * FROM DemoTable WHERE YEAR(AdmissionDate) = '2017';

परिणाम:

+---------------------+
| AdmissionDate       |
+---------------------+
| 2017-11-01 00:00:00 |
+---------------------+

अन्य तारीख भाग फंक्शन

फंक्शनलौटाता हैउदाहरण
YEAR(date)वर्ष (4 अंक)2017
MONTH(date)महीना (1-12)11
DAY(date) / DAYOFMONTH()दिन (1-31)1
HOUR(datetime)घंटा (0-23)14
MINUTE(datetime)मिनट (0-59)30
SECOND(datetime)सेकंड (0-59)45
DAYOFWEEK(date)सप्ताह का दिन (1=रविवार)4
QUARTER(date)तिमाही (1-4)4

रेंज क्वेरी के लिए बेहतर: सीधी तुलना

YEAR() फंक्शन इंडेक्स उपयोग को रोक सकता है। रेंज के लिए सीधी तुलना बेहतर:

CREATE INDEX idx_year ON DemoTable ((YEAR(AdmissionDate)));

फिर WHERE YEAR(AdmissionDate) = 2017 इंडेक्स उपयोग कर सकता है।

  1. - MySQL में CREATE TABLE AS SELECT से मौजूदा टेबल से विशिष्ट पंक्तियों के साथ नई टेबल बनाएं

    MySQL में CREATE TABLE ... AS SELECT स्टेटमेंट का उपयोग करके किसी मौजूदा टेबल से डेटा कॉपी करते हुए, विशिष्ट शर्तों के आधार पर फ़िल्टर की गई पंक्तियों के साथ एक नई टेबल बनाई जा सकती है। यह बैकअप, टेस्टिंग, या सबसेट बनाने के लिए बहुत उपयोगी है। सिंटैक्स CREATE TABLE new_table_name AS SELECT column_l

  1. - MySQL में महीने के अनुसार कुल राशि (SUM) कैसे प्राप्त करें?

    MySQL में MONTH() और YEAR() फ़ंक्शन के साथ GROUP BY का उपयोग करके महीने के अनुसार राशि का योग निकाला जा सकता है। उदाहरण खरीद तालिका बनाएं: mysql> CREATE TABLE DemoTable ( -> PurchaseDate DATE, -> Amount INT -> ); डेटा डालें: mysql> INSERT INTO DemoTable VALUES ->

  1. - MySQL में शर्त के आधार पर केवल कुछ पंक्तियां कैसे हटाएं?

    MySQL में DELETE स्टेटमेंट के WHERE क्लॉज का उपयोग करके शर्त के आधार पर केवल विशिष्ट पंक्तियों को हटाया जा सकता है। सिंटैक्स DELETE FROM table_name WHERE condition; उदाहरण तालिका बनाएं: mysql> CREATE TABLE DemoTable (Id INT, Name VARCHAR(20)); mysql> INSERT INTO DemoTable VALUES (100, Bob),