2012-01-17 15 views
57

पर कनवर्ट करें मेरे पास SQL ​​Server में datetime कॉलम है जो मुझे इस 10/27/2010 12:57:49 pm जैसे डेटा देता है और मैं इस कॉलम से पूछताछ करना चाहता हूं लेकिन केवल SQL सर्वर दिन और वर्ष लौटाता है - उदाहरण के लिए। 2010 10 27 या ऐसा कुछ।एक SQL सर्वर डेटाटाइम को एक छोटे दिनांक प्रारूप

मुझे कौन से कार्यों का शोध करना चाहिए?

क्या मुझे किसी अन्य दिनांक डेटा प्रकार में कनवर्ट करने का प्रयास करना चाहिए? या बस इसे एक स्ट्रिंग में परिवर्तित करें?

+5

SQL सर्वर का कौन सा ** संस्करण **?? एसक्यूएल सर्वर 2008 ने नई तारीख और समय से संबंधित डेटाटाइप का भार प्रस्तुत किया, उदाहरण के लिए 'DATE' - इसलिए यदि आप 2008 में हैं, तो आप 'चयन CAST (YourDateTimeColumn AS DATE)' का उपयोग कर सकते हैं और आप केवल तारीख - वापस समय का हिस्सा वापस प्राप्त कर सकते हैं। –

+1

इस आलेख पर एक नज़र डालें: http://msdn.microsoft.com/en-us/library/ms187928.aspx विशेष रूप से> दिनांक और समय शैलियाँ – Brissles

+0

@marc_s http: //meta.stackoverflow।कॉम/प्रश्न/314561/हैं-वोट-टू-ए-प्रश्न-टिप्पणी-अधिक-मूल्यवान-वोट-के-उत्तर-उत्तर – apaul

उत्तर

84

CONVERT पर एक नज़र डालें। तीसरा पैरामीटर वह दिनांक समय शैली है जिसे आप कनवर्ट करना चाहते हैं।

उदा।

SELECT CONVERT(VARCHAR(10), GETDATE(), 103) -- dd/MM/yyyy format 
+10

ऐसा लगता है कि 106 "डीडी मोन वाई" है और "डीडी/एमएम/yyyy" 103 – nahab

+2

@nahab आप सही हैं। इसके अलावा, मुझे वर्ष को कम करने के लिए वर्चर (10) के बजाय वर्कर (11) का उपयोग करना पड़ा (उदाहरण के लिए मैंने 1 9 53 के बजाय 1 9 5 देखा) – Henrov

+2

इसके अलावा, यदि आप परिणाम स्वरूपित एमएम/डीडी/yyyy – iliketocode

6

इसके अलावा कलाकारों और कन्वर्ट करने के लिए, आप Sql सर्वर 2008 का उपयोग कर रहे हैं, तो आप दिनांक प्रकार में बदल सकते हैं (या कि प्रकार का उपयोग के साथ शुरू करने के लिए), और फिर वैकल्पिक रूप से एक varchar करने के लिए फिर से परिवर्तित:

declare @myDate date 
set @myDate = getdate() 
print cast(@myDate as varchar(10)) 

उत्पादन:

2012-01-17 
11

आप एक तिथि प्रारूप में परिणाम की जरूरत है आप का उपयोग कर सकते हैं:

Select Convert(DateTime, Convert(VarChar, GetDate(), 101)) 
35

इस प्रयास करें:

print cast(getdate() as date)

+3

मुझे यह विकल्प स्वीकार किए गए उत्तर से अधिक पसंद है। यह कॉलम को डेट प्रारूप में छोड़ देता है ताकि मेरा 'ऑर्डर बाय' केवल एक वर्चर के बजाय सही तरीके से काम करता है। – Milne

+0

यह SQL Server 2005 और पहले पर काम नहीं करता है। DATE डेटा प्रकार SQL 2008 के साथ पेश किया गया था। – JerryOL

-2

सिर्फ तिथि कीवर्ड जोड़ें। ईजी। दिनांक (ऑर्डरडेट) का चयन करें, आदेशों से गणना करें (1) जहां ऑर्डरडेट> '2014-10-01' समूह तिथि (ऑर्डरडेट);

ऑर्डरडेट दिनांक समय पर है। यह क्वेरी डेटाटाइम की बजाय उस तिथि के ऑर्डर दिखाएगी।

डेटटाइम कॉलम पर लागू दिनांक कीवर्ड इसे छोटी तारीख में बदल देगा।

4
SQL सर्वर 2005 के साथ

, मैं इस का प्रयोग करेंगे:

select replace(convert(char(10),getdate(),102),'.',' ') 

परिणाम: 2015 03 05

0

एसक्यूएल सर्वर के किसी भी संस्करण के लिए: DATEADD (दिन, DateDiff (डीडी, 0, getdate()), 0)

1

मिमी/डीडी/वाई के सबसे कम दिनांक प्रारूप के साथ प्राप्त किया जा सकता है:

Select Convert(varchar(8),getdate(),1) 
संबंधित मुद्दे