SQL सर्वर में, एक DATETIME डेटाटाइप को 2 4-बाइट पूर्णांक के रूप में संग्रहीत किया जाता है, ताकि इस तरह का कोई विशेष स्वरूपण न हो।
यदि आप किसी विशिष्ट प्रारूप में दिनांक वापस करना चाहते हैं, तो आपको निर्दिष्ट उपयुक्त प्रारूप पहचानकर्ता के साथ इसे VARCHAR में कनवर्ट करना होगा।
यदि आपके पास VARCHAR में डेटाटाइम है और इसे SQL सर्वर में DATETIME फ़ील्ड में संग्रहीत करना चाहते हैं, तो आपको यह सुनिश्चित करना चाहिए कि आप उस मान को SQL में उस प्रारूप में पास कर दें जिसे हमेशा सुरक्षित रूप से व्याख्या किया जाएगा। जैसे dd/mm/YYYY प्रारूप सुरक्षित नहीं है क्योंकि सेटिंग्स के आधार पर इसे mm/dd/yyyy के रूप में माना जा सकता है। सुरक्षित प्रारूप हैं:
yyyyMMdd
yyyy-MM-ddThh:mi:ss.mmm
जैसे
INSERT MyTable (DateField) VALUES ('01/10/2010') -- dd/MM/yyyy not safe
INSERT MyTable (DateField) VALUES ('20101001') -- yyyyMMdd safe
अपडेट करें:
जब आप एक DATETIME फ़ील्ड (GETDATE (), फ़ील्ड, वेरिएबल ....) का चयन करते हैं, तो आप SSMS में जो देखते हैं वह एक स्वरूपित मान होता है क्योंकि यह वही है जो आपके लिए उपयोगी है, इसके बजाय यह वास्तविक आंतरिक 8byte प्रतिनिधित्व दिखाता है ।