2010-07-28 9 views
14

मैं एक दिन [1-31] ​​और एक महीने [1-12] और एक वर्ष (सभी int) को SQL में दिनांक धारावाहिक (वर्चर में कनवर्ट किए बिना) कैसे परिवर्तित कर सकता हूं?दिनांक धारावाहिक?

+0

तक varchar में रूपांतरित किए बिना, आप मतलब है कि एक आईएसओ तारीख निर्माण '-mm-yyyy dd' बाहर रखा गया है? – pascal

+0

मुझे आईएसओ तिथि के बारे में पता है। लेकिन यह सच में काम करता है? एमएस-एसक्यूएल 2005 पर? और भाषाओं/संस्कृतियों (ऑपरेटिंग सिस्टम, उपयोगकर्ता, डेटाबेस उपयोगकर्ता, आईआईएस उपयोगकर्ता) के सभी संभावित संयोजनों में। हां, मुझे पता है कि यह एक मानक है, लेकिन मुझे कहना होगा कि मुझे वास्तव में तथाकथित मानकों में ज्यादा विश्वास नहीं है। इसके अलावा, यह वर्चर के बिना तेज़ है। –

+0

"दिनांक धारावाहिक" से आपका क्या मतलब है? – onedaywhen

उत्तर

27

शून्य, 01 SQL में जनवरी 1900 है, इसलिए आप इस का उपयोग कर सकते हैं:

DATEADD(day, @dayval-1, 
    DATEADD(month, @monthval-1, 
     DATEADD(year, @yearval-1900, 0) 
    ) 
) 

संपादित करें, फ़रवरी 2018

अन्य जवाब है, कहते हैं के बाद से एसक्यूएल सर्वर 2012 (मूल जवाब के बाद जारी) हम उपयोग कर सकते हैं DATEFROMPARTS

SELECT DATEFROMPARTS (@yearval, @monthval, @dayval) 
+0

कूल - धन्यवाद! लालित्य के लिए –

+0

+1। धन्यवाद! – RubyTuesdayDONO

+0

भविष्य में दूसरों की मदद करने के लिए यहां टिप्पणी करते हुए मुझे तारीख धारावाहिकों को सुलझाने में परेशानी हो रही थी और इस जवाब ने मुझे इसे समझने में मदद की। एसक्यूएल में दिनांक धारावाहिक एक्सेल के लिए 1 दिन से अलग है! –

10

कुछ कार्यों एसक्यूएल सर्वर 2012 में शामिल किया गया है जो आप के साथ ऐसा करने की अनुमति देगा, DATETIMEFROMPARTS और TIMEFROMPARTS दूसरों के बीच।

उदाहरण:

SELECT DATEFROMPARTS(2018,2,1) -- returns 2018-02-01 
संबंधित मुद्दे