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

MySQL में IF() से टाइमस्टैम्प कॉलम आधारित बूलियन मान चुनें

IF(condition, true_val, false_val) का उपयोग करके टाइमस्टैम्प कॉलम की वर्तमान दिनांक से तुलना करके बूलियन (0/1) मान उत्पन्न करें।

वर्तमान दिनांक

mysql> SELECT CURDATE(); -- 2019-12-10

टेबल बनाएं

mysql> CREATE TABLE DemoTable1890 (DueDate TIMESTAMP);

डेटा डालें

mysql> INSERT INTO DemoTable1890 VALUES('2017-12-10'), ('2021-12-10'), ('2018-04-24'), ('2020-05-11');

2 साल से पुराने रिकॉर्ड = true (1)

mysql> SELECT IF(DueDate > CURDATE() - INTERVAL 2 YEAR, FALSE, TRUE) AS Status
    FROM DemoTable1890;

आउटपुट:

+--------+
| Status |
+--------+
|      1 |
|      0 |
|      0 |
|      0 |
+--------+

व्याख्या

  • CURDATE() - INTERVAL 2 YEAR = '2017-12-10'।
  • DueDate > '2017-12-10' → भविष्य/हाल के → FALSE (0)।
  • DueDate <= '2017-12-10' → 2+ साल पुराने → TRUE (1)।
  • पहली पंक्ति '2017-12-10' → सख्ती से अधिक नहीं → FALSE? लेकिन आउटपुट 1 दिखाता है। नोट: TIMESTAMP में समय भाग होता है; '2017-12-10 00:00:00' > '2017-12-10' असत्य है। मूल उदाहरण में तर्क उल्टा लगता है। सही: IF(DueDate < CURDATE() - INTERVAL 2 YEAR, TRUE, FALSE)

सुधारित तर्क

SELECT IF(DueDate < CURDATE() - INTERVAL 2 YEAR, 1, 0) AS IsOlderThan2Years
FROM DemoTable1890;

बूलियन उपयोग

  • MySQL में TRUE = 1, FALSE = 0।
  • BOOLEAN = TINYINT(1) समानार्थी।
  • एप्लिकेशन में rs.getBoolean() काम करता है।
  1. - क्या हम MySQL SELECT IN() में एकल मान सेट कर सकते हैं?

    हाँ, हम MySQL में IN() के साथ एकल मान सेट कर सकते हैं। आइए पहले एक टेबल बनाते हैं: mysql> create table DemoTable -> ( -> FirstName varchar(20) -> ); Query OK, 0 rows affected (0.65 sec) इन्सर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें: mysql> insert into DemoTable values(Chris)

  1. - MySQL में मान 0 होने पर दूसरे कॉलम का मान कैसे चुनें?

    IF() फ़ंक्शन का उपयोग यदि किसी कॉलम का मान 0 है तो दूसरे कॉलम का मान लेने के लिए IF() फ़ंक्शन प्रयोग करें: select IF(yourColumnName1=0, yourColumnName2, yourColumnName1) as anyAliasName from yourTableName; टेबल बनाना और डेटा डालना insert into demo30(value,original_value) values(30,0); डेटा देखना

  1. - MySQL में प्रारंभिक मान और ऑटो इन्क्रीमेंट कैसे सेट करें?

    AUTO_INCREMENT विशेषता का उपयोग नई रो के लिए एक अद्वितीय पहचानकर्ता उत्पन्न करने के लिए किया जाता है। यदि किसी कॉलम को NOT NULL घोषित किया गया है, तो उस कॉलम को NULL असाइन करना संभव है ताकि संख्याओं का अनुक्रम उत्पन्न हो सके। जब किसी AUTO_INCREMENT कॉलम में कोई मान डाला जाता है, तो कॉलम उस मान पर