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

MySQL में DATEDIFF() का उपयोग करके समान पंक्तियों के अलग-अलग कॉलम से दो दिनांकों के बीच दिनों की गणना करना

MySQL DATEDIFF() के साथ दो दिनांक कॉलम के बीच अंतर

एक ही पंक्ति में दो दिनांक कॉलम के बीच दिनों की संख्या की गणना करने के लिए, सीधे उन कॉलम पर DATEDIFF() का उपयोग करें। यह रोजगार अवधि, परियोजना अवधि, किराया अवधि आदि के लिए उपयोगी है।

उदाहरण: कर्मचारी कार्य दिवस गणना

mysql> CREATE TABLE DemoTable1471 (
    -> EmployeeJoiningDate DATE,
    -> EmployeeRelievingDate DATE
    -> );
Query OK, 0 rows affected (0.57 sec)

mysql> INSERT INTO DemoTable1471 VALUES
    -> ('2018-06-21', '2018-12-21'),
    -> ('2017-01-19', '2019-01-31'),
    -> ('2015-12-31', '2016-03-01');
Query OK, 3 rows affected (0.10 sec)

mysql> SELECT * FROM DemoTable1471;
+---------------------+-----------------------+
| EmployeeJoiningDate | EmployeeRelievingDate |
+---------------------+-----------------------+
| 2018-06-21          | 2018-12-21            |
| 2017-01-19          | 2019-01-31            |
| 2015-12-31          | 2016-03-01            |
+---------------------+-----------------------+
3 rows in set (0.00 sec)

DATEDIFF() क्वेरी

mysql> SELECT DATEDIFF(EmployeeRelievingDate, EmployeeJoiningDate) AS EmployeeWorkDays
    -> FROM DemoTable1471;

परिणाम

+------------------+
| EmployeeWorkDays |
+------------------+
|              183 |
|              742 |
|               61 |
+------------------+
3 rows in set (0.00 sec)

गणना विवरण

ज्वाइनिंगरिलीविंगदिनव्याख्या
2018-06-212018-12-211836 महीने ठीक
2017-01-192019-01-31742~2 वर्ष + 12 दिन
2015-12-312016-03-0161जनवरी(31) + फरवरी(29 लीप) + 1

DATEDIFF() व्यवहार

  • DATEDIFF(date1, date2) = date1 - date2 (दिनों में)
  • परिणाम चिन्हित: भविष्य की तिथि पहले = सकारात्मक
  • केवल दिनांक भाग मानता है, समय अनदेखा करता है
  • NULL यदि कोई तर्क NULL है

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

-- अधिक सटीक इकाइयों के लिए TIMESTAMPDIFF
SELECT TIMESTAMPDIFF(DAY, JoiningDate, RelievingDate) AS days,
       TIMESTAMPDIFF(MONTH, JoiningDate, RelievingDate) AS months,
       TIMESTAMPDIFF(YEAR, JoiningDate, RelievingDate) AS years
FROM DemoTable1471;

-- वर्ष-महीना-दिन ब्रेकडाउन
SELECT 
    FLOOR(DATEDIFF(RelievingDate, JoiningDate) / 365) AS years,
    FLOOR((DATEDIFF(RelievingDate, JoiningDate) % 365) / 30) AS months,
    DATEDIFF(RelievingDate, JoiningDate) % 30 AS days
FROM DemoTable1471;
  1. - MySQL क्वेरी: दो तिथियों की सीमा के बीच सभी डेटा चुनें

    BETWEEN ऑपरेटर का उपयोग करके तिथि सीमा के बीच डेटा चुनना दो तिथियों की सीमा के बीच सभी डेटा चुनने के लिए MySQL BETWEEN का उपयोग करें: select * from yourTableName where yourColumnName between yourDateValue1 and yourDateValue2; पहले टेबल बनाएं: create table DemoTable1422 ( EmployeeId int NOT NULL AUT

  1. - MySQL में BETWEEN कीवर्ड का उपयोग करके दो तिथियों के बीच रिकॉर्ड्स का SUM प्राप्त करना

    MySQL में दिनांक सीमा के भीतर मानों का योग दिनांक सीमा के भीतर संख्यात्मक मानों का योग करने के लिए, BETWEEN ऑपरेटर के साथ SUM() एग्रीगेट फ़ंक्शन का उपयोग करें। यह बिक्री रिपोर्ट, वित्तीय विश्लेषण और समय-श्रृंखला डेटा के लिए आदर्श है। उदाहरण: तिमाही खरीद योग की गणना पहले एक खरीद टेबल बनाते हैं: SEL

  1. - MySQL में GREATEST/LEAST से दो कॉलम में जोड़ी की घटनाएं गिनें

    दो कॉलम में मानों की जोड़ी (क्रम की परवाह किए बिना) की घटनाएं गिनने के लिए GREATEST() और LEAST() फ़ंक्शन के साथ GROUP BY का उपयोग करें। उदाहरण: नाम जोड़े की घटनाएं गिनना 1. टेबल बनाएं ); 2. डेटा डालें INSERT INTO DemoTable VALUES(Mike, Robert); -- उल्टा क्रम 3. डेटा देखें SELECT * FROM DemoT