अस्वीकरण: यह datetime vs. timestamp? का डुप्लिकेट हो सकता है, लेकिन मुझे लगता है कि मैं जवाब में से आश्वस्त नहीं हूँ:MySQL में DATETIME कॉलम पर TIMESTAMP चुनने के अच्छे कारण क्या हैं?
मेरा प्रश्न है:
क्या अच्छे कारणों MySQL में DATETIME स्तंभों पर TIMESTAMP चुनने के लिए कर रहे हैं?
मैं बहुत यकीन है कि मैं सब कुछ वहाँ उन दोनों के बीच अंतर के बारे में है पता नहीं है हूँ, इसलिए मैं अपने ज्ञान के लिए TIMESTAMP (TS
) की तुलना में DATETIME के मुख्य लाभ (DT
) की सूची की कोशिश करेंगे:
DT
मानव पठनीयDT
(TS
TO_DATE
का उपयोग किए बिना नहीं है) है 8999 वर्ष (1000-01-01 00:00:00
9999-12-31 23:59:59
करने के लिए)
के possble समयावधि ( :TS
केवल लगभग 68 वर्ष,1970-01-01
2038-01-19
करने के लिए)DT
क्षेत्रोंDT
उन्नत तिथि गणना (SELECT NOW() + INTERVAL 2 DAY
)
और ठीक इसके विपरीत के लिए इस्तेमाल किया जा सकता है (this blog post के अनुसार) में बेहतर प्रदर्शन करने लगते हैं
TS
केवल 4 बाइट्स (DT
8 का उपयोग करता है)TS
यूटीसी मूल्यों के रूप में जमा है और ग्राहक के समय क्षेत्रTS
स्तंभों की स्थापना के रूप में एक निगरानी के लिए "लॉग ऑन" जब एक पंक्ति परिवर्तन
एकमात्र कारण मैं यह तो उपयोग करने के लिए देखना है सेवा कर सकते हैं के अनुसार बदल रहे हैं पंक्ति निगरानी होगी, लेकिन TIMESTAMP
की सीमा को देखकर, जो "केवल" 28 वर्ष * में समाप्त हो जाएगी, मैं बजाय एक डालने या अपडेट ट्रिगर के साथ जाऊंगा।
तो, मुझे क्या याद आ रही है? मुझे अभी भी कोई अच्छा उद्देश्य नहीं है किसी भी उद्देश्य के लिए टाइमस्टैम्प चुनने का कारण?
* मैं जानता हूँ कि, यह प्रतीत होता है काफी लंबे समय से है, लेकिन 60 के दशक कुछ इंजीनियर भी साल क्षेत्र के 2 बाइट्स बंद दाढ़ी बनाने के लिए फैसला किया है में वापस आ गया है, क्योंकि अपने कंप्यूटर सिस्टम होगा कभी नहीं वर्ष 2000 तक रन ... ..
सच; हालांकि, यदि आप बाद में डेटा को एक अलग डीबीएमएस में प्रतिलिपि/माइग्रेट करने की आवश्यकता है, तो यह आसान से कम हो जाता है जिसके लिए दिनांक फ़ील्ड वास्तव में (वास्तविक) तिथियों की आवश्यकता होती है। वहां गया, ... – sleske