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

MySQL में महीने और वर्ष की शुरुआत से वाउचर मूल्य का कुल योग गिनना

परिचय

MySQL में MONTH() और YEAR() फंक्शन्स का उपयोग करके तिथि से महीना और वर्ष निकालकर, वर्तमान महीने/वर्ष के रिकॉर्ड फ़िल्टर करके योग निकाला जा सकता है।

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

mysql> CREATE TABLE DemoTable1562 (
    -> VoucherValue INT,
    -> RechargeDate DATE
    -> );
Query OK, 0 rows affected (1.40 sec)
mysql> INSERT INTO DemoTable1562 VALUES(149, '2019-10-21');
Query OK, 1 row affected (0.11 sec)
mysql> INSERT INTO DemoTable1562 VALUES(199, '2019-10-13');
Query OK, 1 row affected (0.18 sec)
mysql> INSERT INTO DemoTable1562 VALUES(399, '2018-10-13');
Query OK, 1 row affected (0.25 sec)
mysql> INSERT INTO DemoTable1562 VALUES(450, '2019-10-13');
Query OK, 1 row affected (0.20 sec)

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

mysql> SELECT * FROM DemoTable1562;

आउटपुट:

+--------------+--------------+
| VoucherValue | RechargeDate |
+--------------+--------------+
| 149          | 2019-10-21   |
| 199          | 2019-10-13   |
| 399          | 2018-10-13   |
| 450          | 2019-10-13   |
+--------------+--------------+
4 rows in set (0.00 sec)

वर्तमान तिथि

mysql> SELECT CURDATE();
+------------+
| CURDATE()  |
+------------+
| 2019-10-13 |
+------------+
1 row in set (0.00 sec)

वर्तमान महीने और वर्ष का कुल वाउचर मूल्य

mysql> SELECT SUM(VoucherValue) FROM DemoTable1562
    -> WHERE MONTH(RechargeDate) = MONTH(CURDATE())
    ->   AND YEAR(RechargeDate) = YEAR(CURDATE());

परिणाम

+-------------------+
| SUM(VoucherValue) |
+-------------------+
| 798               |
+-------------------+
1 row in set (0.00 sec)

व्याख्या

  • MONTH(RechargeDate) = MONTH(CURDATE()) - समान महीना (अक्टूबर = 10)
  • YEAR(RechargeDate) = YEAR(CURDATE()) - समान वर्ष (2019)
  • दोनों शर्तें मिलकर "इस महीने" को परिभाषित करती हैं
  • मेल खाने वाले: 149 (21 अक्टूबर) + 199 (13 अक्टूबर) + 450 (13 अक्टूबर) = 798
  • 399 (2018) बाहर है

बेहतर प्रदर्शन विकल्प: डेट रेंज

SELECT SUM(VoucherValue) FROM DemoTable1562
WHERE RechargeDate >= DATE_FORMAT(CURDATE(), '%Y-%m-01')
  AND RechargeDate < DATE_FORMAT(CURDATE(), '%Y-%m-01') + INTERVAL 1 MONTH;

लाभ:

  • इंडेक्स उपयोग कर सकता है (सार्गेबल - SARGable)
  • फंक्शन कॉल प्रति पंक्ति नहीं
  • समय घटक वाली DATETIME कॉलम के लिए भी काम करता है

साल की शुरुआत से (YTD)

SELECT SUM(VoucherValue) FROM DemoTable1562
WHERE YEAR(RechargeDate) = YEAR(CURDATE());

या डेट रेंज के साथ:

WHERE RechargeDate >= DATE_FORMAT(CURDATE(), '%Y-01-01')
  AND RechargeDate < DATE_FORMAT(CURDATE(), '%Y-01-01') + INTERVAL 1 YEAR

डेट रेंज दृष्टिकोण उत्पादन क्वेरीज के लिए अनुशंसित है।

  1. PHP MySQL में टाइमस्टैम्प से दिन, महीना, वर्ष कैसे निकालें? PHP MySQL में टाइमस्टैम्प से दिन, महीना, वर्ष कैसे निकालें?

    PHP में date_parse() फ़ंक्शन का उपयोग PHP में टाइमस्टैम्प से दिन, महीना, वर्ष और अन्य घटक निकालने के लिए date_parse() फ़ंक्शन का उपयोग करें: print_r(date_parse(anyTimeStampValue)); PHP कोड उदाहरण $yourTimeStampValue = 2019-02-04 12:56:50; print_r(date_parse($yourTimeStampValue)); आउटपुट ) date_p

  1. - MySQL में DATE_FORMAT और STR_TO_DATE से 'mm-yyyy' फॉर्मेट में महीना-वर्ष कैसे निकालें?

    MySQL में VARCHAR कॉलम में स्टोर तारीख (जैसे dd-mm-yyyy) से mm-yyyy फॉर्मेट में महीना-वर्ष निकालने के लिए, STR_TO_DATE() से पार्स करें फिर DATE_FORMAT() से फॉर्मेट करें। उदाहरण: ShippingDate से महीना-वर्ष निकालना डेमो टेबल बनाएं (तारीख VARCHAR में): mysql> CREATE TABLE DemoTable1931 (ShippingD

  1. - MySQL में विकल्प डिफ़ॉल्ट, मान अपेक्षित विकल्प और '=' चिह्न

    MySQL प्रोग्राम में लंबे विकल्प नाम जो मान लेते हैं, उन्हें आमतौर पर = चिह्न के साथ लिखा जाता है, लेकिन यह हमेशा अनिवार्य नहीं है। वाक्यविन्यास नियम मान वाले विकल्प: --option=value या --option value दोनों मान्य हैं। बूलियन विकल्प: --option (सक्षम), --skip-option या --disable-option या --option=0 (