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

MySQL में DATEDIFF() और ORDER BY से तिथि अंतर की गणना और सॉर्टिंग

MySQL में देय तिथियों (Due Dates) का वर्तमान तिथि से अंतर निकालकर उन्हें क्रमबद्ध करने के लिए DATEDIFF() और ORDER BY के साथ CASE अभिव्यक्ति का उपयोग किया जाता है।

वर्तमान तिथि जांचना

mysql> SELECT NOW();
+---------------------+
| now()               |
+---------------------+
| 2019-06-09 21:08:16 |
+---------------------+

उदाहरण के लिए टेबल बनाना

mysql> CREATE TABLE DemoTable (
    Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    DueDate DATETIME
);

डेटा डालना

mysql> INSERT INTO DemoTable(DueDate) VALUES('2019-06-12'), ('2019-06-01'), ('2019-06-05'), ('2019-06-10'), ('2019-06-11');

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

mysql> SELECT * FROM DemoTable;

आउटपुट

+----+---------------------+
| Id | DueDate             |
+----+---------------------+
| 1  | 2019-06-12 00:00:00 |
| 2  | 2019-06-01 00:00:00 |
| 3  | 2019-06-05 00:00:00 |
| 4  | 2019-06-10 00:00:00 |
| 5  | 2019-06-11 00:00:00 |
+----+---------------------+

तिथि अंतर के साथ क्रमबद्ध करना (भविष्य की तिथियाँ पहले, फिर अतीत की)

mysql> SELECT Id, DueDate, DATEDIFF(DueDate, CURDATE()) AS t
    -> FROM DemoTable
    -> ORDER BY CASE WHEN t < 0 THEN 1 ELSE 0 END, t;

आउटपुट

+----+---------------------+------+
| Id | DueDate             | t    |
+----+---------------------+------+
| 4  | 2019-06-10 00:00:00 | 1    |
| 5  | 2019-06-11 00:00:00 | 2    |
| 1  | 2019-06-12 00:00:00 | 3    |
| 2  | 2019-06-01 00:00:00 | -8   |
| 3  | 2019-06-05 00:00:00 | -4   |
+----+---------------------+------+

व्याख्या: CASE WHEN t < 0 THEN 1 ELSE 0 END भूतपूर्व तिथियों (ऋणात्मक अंतर) को 1 और भविष्य की तिथियों को 0 देता है। ASC क्रम में 0 पहले आते हैं, इसलिए भविष्य की तिथियाँ पहले आती हैं, फिर अंतर के अनुसार क्रमबद्ध।

  1. - MySQL में वर्तमान तारीख से महीने के अंत तक के रिकॉर्ड प्रदर्शित करें

    CURDATE() और LAST_DAY() फ़ंक्शन के साथ BETWEEN का उपयोग करके वर्तमान तारीख से वर्तमान महीने के अंत तक के रिकॉर्ड प्राप्त करें। टेबल बनाना और डेटा डालना CREATE TABLE DemoTable (BookingDate DATE); Query OK, 0 rows affected (0.67 sec) INSERT INTO DemoTable VALUES(2019-09-21),(2018-09-10),(2019-09-1

  1. - MySQL में DATEDIFF() का उपयोग करके वर्तमान दिनांक और टेबल दिनांक रिकॉर्ड्स के बीच अंतर ढूंढना

    MySQL DATEDIFF() के साथ दिनांक अंतर गणना MySQL का DATEDIFF() फ़ंक्शन दो दिनांकों के बीच दिनों की संख्या लौटाता है: DATEDIFF(दिनांक1, दिनांक2) = दिनांक1 - दिनांक2 (दिनों में)। यह देय तिथियों, आयु गणना और समय-आधारित विश्लेषण के लिए उपयोगी है। उदाहरण: देय तिथियों से दिनों का अंतर SELECT CURDATE(); +-

  1. - MySQL DATE फ़ंक्शन: वर्तमान तिथि और जॉइनिंग तिथि के बीच अंतर ज्ञात करें

    MySQL में DATEDIFF() का उपयोग करके तिथि अंतर गणना MySQL में DATEDIFF() फ़ंक्शन दो तिथियों के बीच दिनों का अंतर लौटाता है। वर्तमान तिथि के लिए CURDATE() और स्ट्रिंग को तिथि में बदलने के लिए STR_TO_DATE() का उपयोग करें। वर्तमान तिथि जांचना SELECT CURDATE(); +------------+ | curdate() | +-----------