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




ssis teradata (5)

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

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

मैं 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

अद्यतन करें:

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


मुझे यह समाधान मिला, यह मेरे लिए 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

यदि mydate टाइमस्टैम्प है, तो बस इसे डालें:

select column1,
       cast(mydate as datetime) as column2
from MyTable

ठीक है, तो teradata में निष्पादित करने का अर्थ है कि आपके पास समय-समय नहीं है ... लेकिन आपके पास तिथि और समय है:

select column1,
       cast(mydate as date) as column2date,
       cast(mydate as time) as column2time
from MyTable

आप डेटा और समय को एक MSSQL डेटटाइम में संयोजित करने के लिए डेटा को हेरफेर करने के लिए एसएसआईएस का उपयोग कर सकते हैं


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

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


INSERT बयान जो VALUES वाक्यविन्यास का उपयोग करते हैं, कई पंक्तियां डाल सकते हैं। ऐसा करने के लिए, कॉलम मानों की एकाधिक सूचियों को शामिल करें, प्रत्येक कोष्ठक के भीतर संलग्न और अल्पविराम से अलग करें।

उदाहरण:

INSERT INTO tbl_name (a,b,c) VALUES(1,2,3),(4,5,6),(7,8,9);




sql sql-server ssis teradata