2010-10-04 25 views
24

में कनवर्ट करें मैं डेटटाइम पर दिनांक बदलने की कोशिश कर रहा हूं लेकिन त्रुटियां प्राप्त कर रहा हूं। मैं जिस डाटाटाइप से कनवर्ट कर रहा हूं वह है (फ्लोट, नल) और मैं इसे DATETIME में परिवर्तित करना चाहता हूं।INT को DATETIME (SQL)

इस कोड की पहली पंक्ति ठीक काम करता है, लेकिन मैं दूसरी पंक्ति पर यह त्रुटि प्राप्त:

Arithmetic overflow error converting expression to data type datetime. 


CAST(CAST(rnwl_efctv_dt AS INT) AS char(8)), 
CAST(CAST(rnwl_efctv_dt AS INT) AS DATETIME), 
+0

कौन-सी भाषा char के लिए प्रयोग कर रहे हैं नहीं जोड़ सकते ? क्या आप हमें rnwl_efctv_dt का मान दिखा सकते हैं? –

उत्तर

32

आप पहली बार चार क्योंकि पूर्णांक में परिवर्तित करने के लिए 1900/01/01 उन दिनों कहते हैं बदलने की आवश्यकता

select CONVERT (datetime,convert(char(8),rnwl_efctv_dt)) 

यहाँ कुछ उदाहरण हैं

select CONVERT (datetime,5) 

1900-01-06 00: 00: 00.000

select CONVERT (datetime,20100101) 

, ऊपर चल रही है क्योंकि आप 20,100,101 दिनों 1900-01-01..you सीमा से ऊपर जाने के लिए

परिवर्तित पहले

declare @i int 
select @i = 20100101 
select CONVERT (datetime,convert(char(8),@i)) 
+0

मैं इसे सैकड़ों हजारों पंक्तियों के लिए कर रहा हूं। क्या मुझे कुछ देखने की ज़रूरत है? – Daniel

+0

या क्या मैं बस अपने दागों के ऊपर यह अधिकार रख सकता हूं (जिसमें से एक आपका पहला कन्वर्ट स्टेटमेंट में बदल रहा है)? – Daniel

संबंधित मुद्दे