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

MySQL में DATE_FORMAT के लिए NULL इनपुट पर NULL लौटाना - IF फ़ंक्शन का उपयोग

समस्या

MySQL में DATE_FORMAT(NULL, ...) NULL लौटाता है, लेकिन कभी-कभी स्पष्ट नियंत्रण या अलग डिफ़ॉल्ट मान की आवश्यकता होती है।

समाधान: IF() फ़ंक्शन के साथ सशर्त फॉर्मेटिंग

IF() का उपयोग करके NULL मान की जांच करें और तदनुसार संभालें।

सिंटैक्स

SELECT IF(yourDateColumn, DATE_FORMAT(yourDateColumn, '%d/%m/%Y'), NULL) 
FROM yourTableName;

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

टेबल बनाना और NULL सहित डेटा डालना

mysql> CREATE TABLE returnNullWhenInputIsNullDemo (
    -> Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> ShippingDate DATETIME
    -> );

mysql> INSERT INTO returnNullWhenInputIsNullDemo(ShippingDate) VALUES
    -> ('2019-01-21'), (NULL), ('2018-03-25'), (NULL), (NULL),
    -> ('2012-04-23'), ('2018-12-01'), ('2016-11-13');

मूल डेटा (8 पंक्तियाँ, 3 NULL)

IdShippingDate
12019-01-21 00:00:00
2NULL
32018-03-25 00:00:00
4NULL
5NULL
62012-04-23 00:00:00
72018-12-01 00:00:00
82016-11-13 00:00:00

IF के साथ क्वेरी

mysql> SELECT IF(ShippingDate, DATE_FORMAT(ShippingDate, '%d/%m/%Y'), NULL) 
    -> FROM returnNullWhenInputIsNullDemo;

परिणाम

+-------------------------------------------------------------+
| IF(ShippingDate, DATE_FORMAT(ShippingDate, '%d/%m/%Y'), NULL) |
+-------------------------------------------------------------+
| 21/01/2019                                                  |
| NULL                                                        |
| 25/03/2018                                                  |
| NULL                                                        |
| NULL                                                        |
| 23/04/2012                                                  |
| 01/12/2018                                                  |
| 13/11/2016                                                  |
+-------------------------------------------------------------+

व्याख्या

  • IF(condition, true_value, false_value)
  • ShippingDate शर्त के रूप में: NULL = FALSE, गैर-NULL = TRUE
  • सत्य: DATE_FORMAT लागू करें
  • असत्य: NULL लौटाएं

वैकल्पिक दृष्टिकोण

COALESCE (पहला गैर-NULL)

SELECT COALESCE(DATE_FORMAT(ShippingDate, '%d/%m/%Y'), 'N/A') 
FROM returnNullWhenInputIsNullDemo;

NULL के बजाय 'N/A' दिखाता है।

CASE WHEN

SELECT CASE 
    WHEN ShippingDate IS NULL THEN NULL
    ELSE DATE_FORMAT(ShippingDate, '%d/%m/%Y')
END FROM returnNullWhenInputIsNullDemo;

IFNULL (MySQL-विशिष्ट)

SELECT IFNULL(DATE_FORMAT(ShippingDate, '%d/%m/%Y'), 'No Date') 
FROM returnNullWhenInputIsNullDemo;

DATE_FORMAT और NULL का व्यवहार

SELECT DATE_FORMAT(NULL, '%d/%m/%Y');  -- NULL लौटाता है
SELECT DATE_FORMAT('2019-01-21', '%d/%m/%Y');  -- '21/01/2019' लौटाता है

वास्तव में, DATE_FORMAT स्वचालित रूप से NULL को संभालता है। IF का उपयोग तब करें जब आप:

  • NULL के बजाय कस्टम डिफ़ॉल्ट चाहते हैं
  • स्पष्ट नियंत्रण/पठनीयता चाहते हैं
  • जटिल शर्तीय तर्क है

सर्वोत्तम अभ्यास

  • एप्लिकेशन कोड में NULL संभालें (SQL में नहीं)
  • रिपोर्टिंग के लिए COALESCE/IFNULL का उपयोग करें
  • इंडेक्स: DATE कॉलम पर इंडेक्स DATE_FORMAT के साथ काम नहीं करेगा
  1. - MySQL में खाली मानों को NULL में कैसे अपडेट करें?

    MySQL में खाली स्ट्रिंग () को NULL में बदलने के लिए IF() फ़ंक्शन के साथ UPDATE स्टेटमेंट का उपयोग करें। यह डेटा सफाई और मानकीकरण के लिए उपयोगी है। सिंटैक्स UPDATE table_name SET column_name = IF(column_name = , NULL, column_name); उदाहरण तालिका बनाएं और डेटा डालें: mysql> CREATE TABLE DemoTabl

  1. - MySQL में NOT NULL मान के लिए 1 सेट करें

    MySQL में किसी कॉलम के NOT NULL मान होने पर 1 और NULL होने पर 0 लौटाने के लिए IF() फंक्शन के साथ IS NOT NULL ऑपरेटर का उपयोग करें। यह डेटा वैलिडेशन, रिपोर्टिंग, और कंडीशनल एग्रीगेशन के लिए उपयोगी है। बुनियादी सिंटैक्स SELECT IF( IS NOT NULL, 1, 0) AS anyAliasName; आउटपुट: 1 (क्योंकि खाली स्ट्रिंग N

  1. - MySQL में IFNULL का उपयोग करके NULL मानों को 1 के रूप में प्रदर्शित/अपडेट करें

    MySQL में NULL मानों को संभालना: IFNULL() और COALESCE() MySQL में IFNULL() फ़ंक्शन का उपयोग करके आप NULL मानों को डिफ़ॉल्ट मान से बदल सकते हैं। यह लेख दिखाता है कि कैसे NULL मानों को 1 से अपडेट करें और उन्हें प्रदर्शित करें। टेबल बनाना ); Query OK, 0 rows affected (0.00 sec) NULL मानों सहित डेटा