मैं इसे प्रक्रिया में सेट करने के लिए वोट देता हूं (या कॉलम के लिए डिफ़ॉल्ट, आवेषण के लिए)। इस जानकारी को सभी परतों के माध्यम से पारित करने का कोई कारण नहीं है जब तक कि आपको अंतर करने के लिए माइक्रोसेकंड सटीकता की आवश्यकता न हो उदा। जब उपयोगकर्ता ने बटन पर क्लिक किया बनाम जब डेटाबेस में लेनदेन किया गया था। यह विशेष रूप से सच है यदि आपके पास एक वितरित एप्लिकेशन है - क्या आप सिंक में रहने के लिए अपने सभी वेब/एप्लिकेशन सर्वर पर भरोसा करना चाहते हैं, क्लाइंट/सर्वर ऐप्स के लिए अंतिम उपयोगकर्ता वर्कस्टेशन को कभी भी ध्यान न दें? आपके पास अलग-अलग डेटा केंद्रों में सर्वर हो सकते हैं, सभी अलग-अलग समय क्षेत्रों के साथ, कुछ डीएसटी देख रहे हैं, कुछ नहीं, आदि। DateTime.UtcNow
उन अधिकांश अंतरों को मिटा देना चाहिए, लेकिन मैं अभी भी बिना किसी कारण के उस सभी डेटा को पास करने के लिए वापस जाऊंगा। डेटाबेस जानता है कि यह किस समय है; इसे आपके लिए मूल्य संग्रहीत करने दें और उस सभी तर्क को एप्लिकेशन से बाहर रखें।
(इसके अलावा यदि आप यूटीसी समय संग्रहित कर रहे हैं, तो क्या आपको वास्तव में DATETIMEOFFSET
की आवश्यकता है? ? यदि ऐसा है, तो आपको यह जानने की प्रक्रिया के लिए अभी भी किसी तरह की आवश्यकता है कि यह जानकारी किस समय क्षेत्र से आई है। यदि नहीं, तो आपको शायद केवल SMALLDATETIME/DATETIME/DATETIME2
. का उपयोग करना चाहिए आवश्यक सटीकता के आधार पर।)