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

MySQL में प्रत्येक महीने का पहला दिन कैसे प्राप्त करें?

DATE_FORMAT() फ़ंक्शन का उपयोग

MySQL में किसी दिनांक/डेटाटाइम कॉलम से **प्रत्येक महीने का पहला दिन** (YYYY-MM-01 फॉर्मेट में) प्राप्त करने के लिए DATE_FORMAT() फ़ंक्शन का उपयोग करें।

सिंटैक्स

SELECT DATE_FORMAT(yourDateTimeColumn, '%Y-%m-01') AS FirstDayOfMonth 
FROM yourTableName;

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

1. टेबल बनाएं और विभिन्न महीनों की दिनांक डालें

mysql> CREATE TABLE GetFirstDayOfMonth (
    -> DueDatetime DATETIME
    -> );
Query OK, 0 rows affected (1.16 sec)

mysql> INSERT INTO GetFirstDayOfMonth VALUES(DATE_ADD(NOW(), INTERVAL 3 MONTH));
mysql> INSERT INTO GetFirstDayOfMonth VALUES(DATE_ADD(NOW(), INTERVAL -3 MONTH));
mysql> INSERT INTO GetFirstDayOfMonth VALUES(DATE_ADD(NOW(), INTERVAL -2 MONTH));
mysql> INSERT INTO GetFirstDayOfMonth VALUES(DATE_ADD(NOW(), INTERVAL -1 MONTH));
mysql> INSERT INTO GetFirstDayOfMonth VALUES(DATE_ADD(NOW(), INTERVAL -4 MONTH));

2. डेटा देखें

mysql> SELECT * FROM GetFirstDayOfMonth;
+---------------------+
| DueDatetime         |
+---------------------+
| 2019-03-20 12:32:06 |
| 2018-09-20 12:32:16 |
| 2018-10-20 12:32:22 |
| 2018-11-20 12:32:28 |
| 2018-08-20 12:32:33 |
+---------------------+
5 rows in set (0.00 sec)

3. प्रत्येक महीने का पहला दिन प्राप्त करें

mysql> SELECT DATE_FORMAT(DueDatetime, '%Y-%m-01') AS DateDemo 
    -> FROM GetFirstDayOfMonth;
+------------+
| DateDemo   |
+------------+
| 2019-03-01 |
| 2018-09-01 |
| 2018-10-01 |
| 2018-11-01 |
| 2018-08-01 |
+------------+
5 rows in set (0.00 sec)

वैकल्पिक विधियाँ

1. DATE() + INTERVAL (दिन घटाकर)

SELECT DATE(DueDatetime) - INTERVAL (DAY(DueDatetime) - 1) DAY 
FROM GetFirstDayOfMonth;

2. STR_TO_DATE + DATE_FORMAT (स्ट्रिंग कॉलम के लिए)

SELECT DATE_FORMAT(STR_TO_DATE(dateString, '%Y-%m-%d'), '%Y-%m-01') ...

3. DATE_SUB (महीने की शुरुआत)

SELECT DATE_SUB(DueDatetime, INTERVAL DAY(DueDatetime)-1 DAY) ...

उपयोग केस

  • मासिक रिपोर्ट समूहीकरण: GROUP BY DATE_FORMAT(date, '%Y-%m')
  • महीने की सीमा: WHERE date >= '2023-01-01' AND date < '2023-02-01'
  • कैलेंडर जनरेशन
  • बिलिंग चक्र गणना

प्रदर्शन टिप

बड़े टेबल्स पर DATE_FORMAT इंडेक्स उपयोग नहीं कर सकता। रेंज क्वेरी के लिए:

WHERE DueDatetime >= '2023-01-01' AND DueDatetime < '2023-02-01'

या फंक्शनल इंडेक्स (MySQL 8.0+):

CREATE INDEX idx_month_start ON GetFirstDayOfMonth ((DATE_FORMAT(DueDatetime, '%Y-%m-01')));
  1. - MySQL में डेट रिकॉर्ड से महीने का पहला और अंतिम दिन कैसे प्रदर्शित करें?

    आइए पहले एक टेबल बनाते हैं: mysql> create table DemoTable -> ( -> DueDate date -> ); Query OK, 0 rows affected (0.73 sec) इन्सर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें: mysql> insert into DemoTable values(2019-01-11); Query OK, 1 row affected (0.08 sec) mysql> insert into

  1. - PHP में सप्ताह के पहले दिन कैसे प्राप्त करें?

    PHP में सप्ताह के पहले दिन को प्राप्त करने के लिए, कोड इस प्रकार है: उदाहरण: this week <?php $res = date(l - d/m/Y, strtotime(this week)); echo First day = , $res; ?> आउटपुट First day = Monday - 09/12/2019 उदाहरण: Sunday as first day <?php echo Displaying Sunday as first day of a week

  1. - Python में महीने का अंतिम दिन कैसे प्राप्त करें?

    आप कैलेंडर मॉड्यूल का उपयोग करके महीने के पहले दिन का वीकडे और महीने में दिनों की संख्या ढूंढ सकते हैं। इस जानकारी का उपयोग करके आप आसानी से महीने का अंतिम दिन प्राप्त कर सकते हैं। कैलेंडर मॉड्यूल में एक मेथड, monthrange(year, month) है जो निर्दिष्ट वर्ष और महीने के लिए महीने के पहले दिन का वीकडे और