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

MySQL में किसी दिनांक का अंतिम सेकंड (23:59:59) कैसे प्राप्त करें?

MySQL में DATE() और INTERVAL अंकगणित का उपयोग करके किसी दिनांक का अंतिम सेकंड (दिन का अंत: 23:59:59) प्राप्त किया जा सकता है।

तर्क

  1. DATE(datetime) - समय भाग हटाकर केवल दिनांक (00:00:00)
  2. + INTERVAL 1 DAY - अगले दिन की शुरुआत
  3. - INTERVAL 1 SECOND - 1 सेकंड घटाकर दिन का अंत

उदाहरण

तालिका बनाएं:

mysql> CREATE TABLE DemoTable (JoiningDatetime DATETIME, DueDatetime DATETIME);
mysql> INSERT INTO DemoTable(JoiningDatetime) VALUES ('2019-11-03 12:34:54'), ('2019-10-04 12:34:54');

क्वेरी: DueDatetime को दिन के अंत पर सेट करें

mysql> UPDATE DemoTable
    ->> SET DueDatetime = DATE(JoiningDatetime) + INTERVAL 1 DAY - INTERVAL 1 SECOND;

परिणाम

+---------------------+---------------------+
| JoiningDatetime     | DueDatetime         |
+---------------------+---------------------+
| 2019-11-03 12:34:54 | 2019-11-03 23:59:59 |
| 2019-10-04 12:34:54 | 2019-10-04 23:59:59 |
+---------------------+---------------------+

विकल्प: TIMESTAMPADD

SET DueDatetime = TIMESTAMPADD(SECOND, -1, DATE_ADD(DATE(JoiningDatetime), INTERVAL 1 DAY));

MySQL 8.0+ विकल्प

-- दिन की अंतिम माइक्रोसेकंड (अधिक सटीक)
SET DueDatetime = DATE(JoiningDatetime) + INTERVAL 1 DAY - INTERVAL 1 MICROSECOND;

उपयोग केस

  • दिन की सीमा क्वेरी: WHERE dt >= '2019-11-03' AND dt <= '2019-11-03 23:59:59'
  • रिपोर्टिंग अवधि समाप्ति
  • डेडलाइन सेट करना

बेहतर पैटर्न: आधी-खुली रेंज

WHERE dt >= '2019-11-03' AND dt < '2019-11-04'
-- अंतिम सेकंड की गणना की आवश्यकता नहीं, इंडेक्स-अनुकूल

सिफारिश: अंतिम सेकंड की गणना के बजाय आधी-खुली रेंज [start, end) उपयोग करें।

  1. - MySQL में UK दिनांक प्रारूप (DD/MM/YYYY) को MySQL DATE में परिवर्तित करना

    UK दिनांक प्रारूप (दिन/महीना/वर्ष - DD/MM/YYYY) को MySQL मानक DATE प्रारूप (YYYY-MM-DD) में परिवर्तित करने के लिए STR_TO_DATE() फ़ंक्शन का उपयोग करें। सिंटैक्स SELECT STR_TO_DATE(date_column, %d/%m/%Y) FROM table_name; प्रारूप स्पेसिफायर्स स्पेसिफायरअर्थउदाहरण %dदिन (01-31)31 %mमहीना (01-12)12 %Y

  1. - MySQL में VARCHAR तिथियों की सूची से अधिकतम तिथि प्राप्त करना

    VARCHAR कॉलम में संग्रहीत तिथियों से अधिकतम तिथि निकालना जब तिथियां VARCHAR कॉलम में टेक्स्ट फॉर्मेट में संग्रहीत होती हैं (जैसे Sunday, 11 August 2019), तो उन्हें तिथि के रूप में तुलना करने के लिए STR_TO_DATE() फ़ंक्शन का उपयोग करना पड़ता है। व्यावहारिक उदाहरण तालिका बनाना CREATE TABLE DemoTable

  1. - MySQL में DATE_FORMAT का उपयोग करके DATETIME से केवल तिथि प्राप्त करना

    MySQL में DATE_FORMAT() के साथ DATETIME से केवल तिथि भाग निकालना DATE_FORMAT() फ़ंक्शन तिथि/समय मान को निर्दिष्ट फॉर्मेट स्ट्रिंग के अनुसार फॉर्मेट करता है। %d.%m.%Y फॉर्मेट दिन.महीना.वर्ष देता है। व्यावहारिक उदाहरण तालिका बनाना CREATE TABLE DemoTable ( AdmissionDate DATETIME ); DATETIME मान