मत। DateTime
मानों को DateTime
. के रूप में संग्रहित किया जाना चाहिए , जब तक कि आपके पास उन्हें अन्यथा संग्रहीत करने के लिए वास्तव में कोई अच्छा कारण न हो (जैसे DateTime
के न्यूनतम/अधिकतम मानों के बाहर दिनांक और समय मानों का समर्थन करने के लिए) ), मेरा सुझाव है कि इसे DateTime
. में छोड़ देना चाहिए कॉलम।
Select
. के दौरान आप हमेशा हेरफेर कर सकते हैं कि आप उन्हें डेटाबेस से कैसे लौटाते हैं या प्रस्तुति परत में। DateTime
. से यूनिक्स समय वापस करने के लिए , MySql एक अंतर्निहित विधि प्रदान करता है जिसे UNIX_TIMESTAMP
. मिलीसेकंड की संख्या वापस करने के लिए, बस 1000 से गुणा करें, क्योंकि यूनिक्स टाइमस्टैम्प 1 जनवरी, 1970 से सेकंड की संख्या है (लीप सेकंड को शामिल नहीं)। यदि आप यूनिक्स समय को स्टोर करना चाहते हैं, तो आपको एक इंट डेटा प्रकार का उपयोग करना होगा।
कृपया ध्यान दें कि यदि आप वास्तविक DateTime
. को संग्रहीत करने के बजाय यूनिक्स समय संग्रहीत करते हैं DateTime
. में मान डेटा प्रकार कॉलम, आप आसानी से डेटाबेस कार्यों में निर्मित सभी डेटाटाइम का उपयोग करने की क्षमता खो देंगे। उदाहरण के लिए, यदि आप यह पता लगाना चाहते हैं कि किसी विशिष्ट महीने में कितनी पंक्तियाँ हैं, तो आपको पहले डेटा को इंट से डेटाटाइम में अनुवाद करना होगा, और उसके बाद ही आप उसकी गणना कर पाएंगे।
आप सटीकता भी खो देंगे (चूंकि यूनिक्स समय 1 सेकंड के संकल्प पर भी गलत है, क्योंकि यह लीप सेकेंड को अनदेखा करता है)।
तो, निष्कर्ष निकालने के लिए - जब डेटाबेस आपको डेटा प्रकार प्रदान करता है जो डेटा को फिट करता है, तो उस डेटा को किसी भिन्न डेटा प्रकार का उपयोग करके संग्रहीत न करें। Date
का उपयोग करें
डेटा प्रकार यदि आप केवल दिनांक संग्रहीत करना चाहते हैं, DateTime
डेटा प्रकार यदि आप डेटाटाइम मानों को संग्रहीत करना चाहते हैं, और Time
डेटा प्रकार यदि आप दिन में एक विशिष्ट समय संग्रहीत करना चाहते हैं।
अनुलेख
दिनांक समय मानों के साथ काम करते समय, विशेष रूप से यदि आपको कई स्थानों के ग्राहकों से निपटना है, तो हमेशा अपने डेटाबेस में केवल UTC दिनांक समय संग्रहीत करें, बेशक, जब तक आप पागल नहीं होना चाहते।