MySQL में 1970 से पहले की तारीखें संभालना
MySQL का DATE डेटा प्रकार 1000-01-01 से 9999-12-31 तक की तारीखें संग्रहीत कर सकता है, जबकि TIMESTAMP केवल 1970-2038 तक सीमित है।
DATE डेटा प्रकार की रेंज
- न्यूनतम: 1000-01-01
- अधिकतम: 9999-12-31
- फॉर्मेट: 'YYYY-MM-DD'
उदाहरण
टेबल बनाएं:
mysql> create table DateDemo (
-> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> DateBefore1970 date
-> );
विभिन्न तारीखें डालें (1970 से पहले और बाद की):
mysql> insert into DateDemo(DateBefore1970) values('1000-10-20');
mysql> insert into DateDemo(DateBefore1970) values('1940-12-31');
mysql> insert into DateDemo(DateBefore1970) values('1500-01-25');
mysql> insert into DateDemo(DateBefore1970) values('1900-04-14');
mysql> insert into DateDemo(DateBefore1970) values('1710-11-15');
mysql> insert into DateDemo(DateBefore1970) values('9999-12-31');
mysql> insert into DateDemo(DateBefore1970) values('10000-12-31'); -- रेंज से बाहर
परिणाम:
+----+----------------+ | Id | DateBefore1970 | +----+----------------+ | 1 | 1000-10-20 | | 2 | 1940-12-31 | | 3 | 1500-01-25 | | 4 | 1900-04-14 | | 5 | 1710-11-15 | | 6 | 9999-12-31 | | 7 | 0000-00-00 | -- रेंज से बाहर होने पर +----+----------------+
महत्वपूर्ण बिंदु
DATEकेवल दिनांक संग्रहीत करता है, समय नहींDATETIMEभी इसी रेंज (1000-9999) का समर्थन करता है और समय शामिल करता हैTIMESTAMP1970-01-01 से 2038-01-19 तक सीमित है (32-बिट सिस्टम पर)- रेंज से बाहर की तारीख
0000-00-00बन जाती है (चेतावनी के साथ)
सिफारिश
1970 से पहले की तारीखों के लिए हमेशा DATE या DATETIME का उपयोग करें, TIMESTAMP का नहीं।