TIMESTAMP और DATETIME दोनों दिनांक और समय स्टोर करते हैं, लेकिन महत्वपूर्ण अंतर हैं:
तुलना तालिका
| विशेषता | DATETIME | TIMESTAMP |
|---|---|---|
| रेंज | 1000-01-01 से 9999-12-31 | 1970-01-01 से 2038-01-19 (Year 2038 समस्या) |
| स्टोरेज | 8 बाइट्स | 4 बाइट्स |
| टाइमज़ोन | कोई रूपांतरण नहीं | UTC में बदलकर स्टोर, पढ़ते समय सेशन टाइमज़ोन में बदलता है |
| डिफ़ॉल्ट मान | NULL (अगर निर्दिष्ट न हो) | CURRENT_TIMESTAMP (पहले कॉलम के लिए) |
| इंडेक्सिंग | पूर्ण समर्थन | पूर्ण समर्थन |
उदाहरण: TIMESTAMP का व्यवहार
mysql> CREATE TABLE TimeStampDemo (MyDateTime TIMESTAMP);
mysql> INSERT INTO TimeStampDemo VALUES (NOW());
mysql> SELECT * FROM TimeStampDemo;
+---------------------+
| MyDateTime |
+---------------------+
| 2018-10-11 17:30:38 |
+---------------------+
कब क्या चुनें?
- DATETIME जब: ऐतिहासिक/भविष्य की तारीखें, टाइमज़ोन स्वतंत्रता, जन्मतिथि, अपॉइंटमेंट।
- TIMESTAMP जब: रिकॉर्ड निर्माण/अपडेट समय (मेटाडेटा), टाइमज़ोन जागरूकता जरूरी, स्टोरेज बचाना हो।
सर्वोत्तम अभ्यास
आधुनिक MySQL (5.6+) में DATETIME(6) या TIMESTAMP(6) माइक्रोसेकंड परिशुद्धता के लिए उपयोग करें।