टेराटाटा टाइमस्टैम्प(6) को SQL सर्वर के लिए डेटटाइम में परिवर्तित करना




sql-server ssis (3)

मैं SSIS से डेटा निर्यात पर काम कर रहा हूं, और मेरे एक प्रोजेक्ट में ट्रांस्केशन त्रुटि है:

[TH27 [9 1]] त्रुटि: "एक ट्रांस्केशन त्रुटि हुई। कॉलम का नाम 'मायडेट' है।"

इनपुट (टेराटाटा) में, मेरे पास टाइप timestamp(6) का एक स्तंभ है, और SQL सर्वर में आउटपुट में, मेरे पास एक प्रकार का कॉलम datetime I

मैं इसे कैसे परिवर्तित कर सकता हूं कि जब मैं एसएसआई का उपयोग करता हूं तो मुझे इस तरह की त्रुटि नहीं मिलती?

मेरा प्रयास (अनुरोध 1):

SELECT 
    column1,
    CAST(CAST(CAST(mydate AS DATE FORMAT 'YYYY-MM-DD') AS CHAR(10)) || ' ' 
             || TRIM(EXTRACT(HOUR FROM (mydate))) || ':'
             || TRIM(EXTRACT(MINUTE FROM (mydate))) || ':'
             || TRIM(CAST(EXTRACT(SECOND FROM (mydate)) AS INTEGER)) AS Date) AS mydate,
    column2
FROM table1

अद्यतन करें:

मैंने जो अनुरोध किया वह टेराडाटा स्रोत में था, यह मेरे एसएसआईएस स्कीमा का एक उदाहरण है

https://code.i-harness.com


तिथि (समय) पर डाली का उपयोग न करें, कन्वर्ट का उपयोग करें यह केवल आपकी मशीन पर काम करेगा;) जैसे ही आपको एकाधिक संस्कृति सेटिंग्स से निपटना होगा, यह असफल हो सकता है क्योंकि दिनांक प्रारूप के विभिन्न स्ट्रिंग अभ्यावेदन।

संयुक्त राज्य अमेरिका के बाहर आप इस तरह की त्रुटियों में बहुत जल्द चलेंगे। कई विकास प्रणालियां अमेरिकी सेटिंग्स को त्रुटि संदेशों के लिए आसानी से ब्राउज़िंग का उपयोग करती हैं, लेकिन ग्राहकों की प्रणाली स्थानीय भाषा सेटिंग्स के तहत चलती है और ओएस और डीबी के लिए विभिन्न भाषा सेटिंग्स पर सबसे खराब है इसे संभालने का सबसे अच्छा तरीका आईएसओ प्रारूप (120) आंतरिक रूप से उपयोग करना है।


मुझे यह समाधान मिला, यह मेरे लिए SSIS में काम करने वाला है जो timestamp(6) में अंतिम भाग को निकालने और timestamp(0) में उसके बाद इसे परिवर्तित करना है।

select column1,
       CAST(SUBSTRING(CAST(mydate AS CHAR(26)) FROM 1 FOR 19) AS TIMESTAMP(0))
       as mydate 
from MyTable

यह शायद इसलिए है क्योंकि SQL सर्वर 6 आंशिक अंकों का समर्थन नहीं करता है, इसलिए टेराटाटा पर 3 आंशिक अंकों के साथ एक स्ट्रिंग में डालें:

To_Char(myDate,'yyyy-mm-dd hh:mi:ss.ff3')






teradata