सामान्य जानकारी
ये डेटाटाइम्स डेटाटाइप्स के डिफ़ॉल्ट प्रारूप हैं (स्ट्रिंग से कनवर्ट करते समय)
DT_DBDATE
yyyy-mm-dd
DT_FILETIME
yyyy-mm-dd hh:mm:ss:fff
DT_DBTIME
hh:mm:ss
DT_DBTIME2
hh:mm:ss[.fffffff]
DT_DBTIMESTAMP
yyyy-mm-dd hh:mm:ss[.fff]
DT_DBTIMESTAMP2
yyyy-mm-dd hh:mm:ss[.fffffff]
DT_DBTIMESTAMPOFFSET
yyyy-mm-dd hh:mm:ss[.fffffff] [{+|-} hh:mm]
नोट:DT_DATE और DT_DBTIMESTAMP की SET विधि समान है
और मुझे लगता है कि स्ट्रिंग को आज तक कनवर्ट करना आपकी वर्तमान संस्कृति जानकारी पर भी निर्भर करता है
अधिक विस्तृत जानकारी यहाँ पाई जाती है
- एकीकरण सेवाएं डेटा प्रकार
- SSIS से SQL सर्वर डेटा प्रकार अनुवाद
प्रयोग :
आपकी टिप्पणी पढ़ने के बाद मुझे आपके प्रश्न से संबंधित कोई लेख नहीं मिला इसलिए मैंने निम्नलिखित प्रयोग किए:
एसएसआईएस निहित डेटाटाइम रूपांतरण
मैंने डेटाफ्लोटास्क के साथ एक एसएसआईएस पैकेज बनाया है। इस डेटाफ्लोटास्क में मैंने एक स्क्रिप्ट घटक (स्रोत के रूप में) और एक फ्लैट फ़ाइल गंतव्य बनाया है। स्क्रिप्ट में एक आउटपुट कॉलम होता है OutDate
प्रकार का DT_DbTimeStamp
स्क्रिप्ट के अंदर मैंने निम्नलिखित कोड का उपयोग किया है:
Private dtDate As Date = #01/01/2016#
Public Overrides Sub CreateNewOutputRows()
Output0Buffer.AddRow()
Using sw As New IO.StreamWriter("D:\Result.txt", False)
sw.WriteLine("CultureInfo;Date;Format;Accepted")
sw.Close()
End Using
For Each ci As System.Globalization.CultureInfo In System.Globalization.CultureInfo.GetCultures(Globalization.CultureTypes.AllCultures)
For Each strFormat As String In ci.DateTimeFormat.GetAllDateTimePatterns
Dim boolResult As Boolean = True
Try
Output0Buffer.OutDate = dtDate.ToString(strFormat)
boolResult = True
Catch ex As Exception
boolResult = False
End Try
Using sw As New IO.StreamWriter("D:\Result.txt", True)
sw.WriteLine(ci.Name & ";" & dtDate.ToString(strFormat) & ";" & strFormat & ";" & boolResult.ToString)
sw.Close()
End Using
Next
Next
End Sub
सबसे पहले मैं सभी संस्कृति जानकारी पर लूपिंग कर रहा हूं और मैं इससे संबंधित सभी डेटाटाइम प्रारूप प्राप्त कर रहा हूं और उन पर लूपिंग कर रहा हूं। फिर मैं दिनांक dtDate
. को रूपांतरित करने का प्रयास कर रहा हूं एक स्वरूपित स्ट्रिंग के लिए घोषित और इसे आउटपुट कॉलम में असाइन करें।
इसलिए यदि DT_DBTIMESTAMP आउटपुट कॉलम में निर्दिष्ट प्रारूप के साथ स्ट्रिंग मान निर्दिष्ट करना स्वीकार किया जाता है, तो इसका मतलब है कि प्रारूप अंतर्निहित रूपांतरित है
Output0Buffer.OutDate = dtDate.ToString(strFormat)
और यहां परिणाम फ़ाइल का लिंक दिया गया है:
- Result.txt
SQL सर्वर डेटाटाइम लागू रूपांतरण
दो डेटाटाइम स्ट्रिंग प्रारूप हैं जिनकी किसी भी भाषा सेटिंग के साथ सही ढंग से व्याख्या की जाती है।
yyyyMMdd
yyyy-MM-ddTHH:mm:ss (ISO8601)
साथ ही, आप वही प्रयोग दोहरा सकते हैं लेकिन इस बार SqlCommand
. बनाकर और इसे क्रियान्वित करना:
Dim sqlcmd as new SqlCommand("SELECT CONVERT(DATETIME,'" + dtdate.ToString(strFormat) + '")"
sqlCmd.ExecuteReader()
इस तरह आप कर सकते हैं यदि sqlcmd अपवाद फेंकता है तो इसका मतलब है कि प्रारूप को परिवर्तित नहीं किया जा सकता है।