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

MySQL में TIMESTAMP डिफ़ॉल्ट के लिए CURRENT_TIMESTAMP उपयोग करें, CURRENT_DATE() नहीं

TIMESTAMP कॉलम के लिए डिफ़ॉल्ट मान: CURRENT_TIMESTAMP सही है

MySQL में TIMESTAMP कॉलम का डिफ़ॉल्ट मान CURRENT_TIMESTAMP (या NOW()) होना चाहिए, CURRENT_DATE() नहीं — क्योंकि CURRENT_DATE() केवल दिनांक लौटाता है (समय 00:00:00), जबकि TIMESTAMP में समय भाग भी होता है।

सही टेबल परिभाषा

CREATE TABLE defaultCurrent_DateDemo (
    StudentId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    StudentName VARCHAR(20),
    StudentAdmissionDate TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

डेटा डालना

INSERT INTO defaultCurrent_DateDemo (StudentName) VALUES ('Larry');
INSERT INTO defaultCurrent_DateDemo (StudentName, StudentAdmissionDate) VALUES ('Chris', '2019-01-31');

परिणाम

+-----------+-------------+----------------------+
| StudentId | StudentName | StudentAdmissionDate |
+-----------+-------------+----------------------+
| 1         | Larry       | 2019-04-02 19:38:19  |  -- CURRENT_TIMESTAMP से ऑटो भरा
| 2         | Chris       | 2019-01-31 00:00:00  |  -- स्पष्ट मान
+-----------+-------------+----------------------+

महत्वपूर्ण बिंदु

  • CURRENT_TIMESTAMP (या NOW()) दिनांक+समय दोनों देता है।
  • CURRENT_DATE() केवल दिनांक देता है → समय 00:00:00 सेट होता है (आमतौर पर अवांछित)।
  • MySQL 5.6.5+ से एक टेबल में एकाधिक TIMESTAMP कॉलम पर DEFAULT CURRENT_TIMESTAMP और ON UPDATE CURRENT_TIMESTAMP अनुमत है।
  • DATETIME कॉलम पर भी DEFAULT CURRENT_TIMESTAMP काम करता है (5.6.5+)

ON UPDATE के साथ (अपडेट पर ऑटो टाइमस्टैम्प)

CREATE TABLE t (
    id INT PRIMARY KEY,
    created TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
  1. Java में MySQL के लिए PreparedStatement का उपयोग करके SELECT क्वेरी कैसे चलाएं? Java में MySQL के लिए PreparedStatement का उपयोग करके SELECT क्वेरी कैसे चलाएं?

    Java में PreparedStatement से SELECT क्वेरी निष्पादित करना SELECT क्वेरी के लिए executeQuery() मेथड का उपयोग किया जाता है। सिंटैक्स PreparedStatement pstmt = connection.prepareStatement(query); ResultSet rs = pstmt.executeQuery(); उदाहरण: डेटाबेस में टेबल बनाएं ); डेटा डालें: insert into JavaP

  1. - MySQL 8.0 में 'rank' आरक्षित शब्द: कॉलम नाम के लिए बैकटिक्स आवश्यक

    MySQL 8.0.2 से RANK एक आरक्षित शब्द (reserved word) है क्योंकि विंडो फ़ंक्शन RANK() जोड़ा गया। इसे कॉलम नाम के रूप में उपयोग करने के लिए बैकटिक्स (`) आवश्यक हैं। समस्या ); ERROR 1064 (42000): You have an error in your SQL syntax near rank int at line 5 समाधान: बैकटिक्स उपयोग करें ); Query OK डे

  1. - MySQL में DATE_FORMAT से टेबल कॉलम के दिनांक प्रारूप बदलें

    DATE_FORMAT(date, format) फ़ंक्शन का उपयोग करके DATETIME/DATE कॉलम को वांछित स्ट्रिंग प्रारूप में प्रदर्शित करें। टेबल बनाएं mysql> CREATE TABLE DemoTable1906 (DueTime DATETIME); डेटा डालें mysql> INSERT INTO DemoTable1906 VALUES(NOW()), (CURDATE()), (2017-10-11), (2015-01-12), (2018-04-25);