SQL सर्वर डेटाइम को छोटी दिनांक स्वरूप में कनवर्ट करें


83

मेरे पास datetimeएसक्यूएल सर्वर में एक कॉलम है जो मुझे इस तरह से डेटा देता है 10/27/2010 12:57:49 pmऔर मैं इस कॉलम को क्वेरी करना चाहता हूं लेकिन बस एसक्यूएल सर्वर को महीने और साल में वापस करना होगा - जैसे। 2010 10 27या कुछ इस तरह का।

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

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


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

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


जवाबों:


123

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

जैसे

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

12
ऐसा लगता है कि 106 "dd मोन yy" और "dd / MM / yyyy" 103 है
nahab

3
@ साहब आप सही हैं। इसके अलावा, मुझे वर्ष को छोटा करने के लिए
विचर

6
इसके अलावा, आप 101 का उपयोग कर सकते हैं यदि आप परिणाम मिमी / dd / yyyy चाहते हैं
iliketocode

58

इसे इस्तेमाल करे:

print cast(getdate() as date )


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

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

जैसा कि ऊपर कहा गया है कि डेट डेटा-प्रकार प्राप्त करना वास्तव में अच्छा है, लेकिन जब एक विशिष्ट प्रारूप की उम्मीद की जाती है (जैसे "dd MM yyyy") तो अधिक की आवश्यकता होती है।
त्रिकोट

15

यदि आपको तिथि प्रारूप में परिणाम की आवश्यकता है तो आप इसका उपयोग कर सकते हैं:

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

10

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

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

उत्पादन:

2012-01-17

6

SQL Server 2005 के साथ, मैं इसका उपयोग करूंगा:

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

परिणाम: 2015 03 05


5

यदि आप एक है, तो दिनांक 43:: क्षेत्र है कि इस 2018/03/30 08 की तरह परिणाम देता है 28.177

प्रस्तावित: और आप बदलना चाहते हैं datetime के लिए तिथि 2018/03/30 की तरह प्रकट करने के लिए

cast(YourDateField as Date)

1
आपने कुछ नया नहीं जोड़ा है, jabu.hlong ने पहले ही यह जवाब 4 साल पहले दिया था ...
Pawel Czapski

यह आश्वस्त नहीं है कि तारीख ओपी के प्रारूप में प्रदान की जाएगी। यह yyyy-MM-dd, dd / MM / yyyy, dd / MM / yyyy 00:00:00 या अभी भी कुछ और हो सकता है।
त्रिकोट

4

Mm / dd / yy की सबसे छोटी तिथि प्रारूप के साथ प्राप्त किया जा सकता है:

Select Convert(varchar(8),getdate(),1)

0

बस तारीख कीवर्ड जोड़ें। उदाहरण के लिए दिनांक (क्रमांक) का चयन करें, क्रम से (1) क्रमबद्ध करें जहां क्रमबद्ध करें> दिनांक (क्रमवार) द्वारा '2014-10-01' समूह;

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

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


0

SQL सर्वर के किसी भी संस्करण के लिए: dateadd (dd, datediff (dd, 0, getdate ) (), 0)


यह आश्वस्त नहीं है कि तारीख ओपी के प्रारूप में प्रदान की जाएगी। यह yyyy-MM-dd, dd / MM / yyyy, dd / MM / yyyy 00:00:00 या अभी भी कुछ और हो सकता है।
त्रिनोट

0

मूल दिनांक समय क्षेत्र: [_Date_Time]

संक्षिप्त में परिवर्तित: 'Short_Date'

CONVERT(date, [_Date_Time]) AS 'Short_Date'

यह एक तारीख डेटा प्रकार लौटाता है जिसे एक स्ट्रिंग के रूप में प्रस्तुत करने के लिए इंटरफ़ेस पर छोड़ दिया जाएगा, इसलिए यह "27/12/2018 00:00:00" अच्छी तरह से उत्पादन कर सकता है। ओपी ने जो मांगा वह नहीं हुआ।
त्रिनकोट

यह जो उसने पाने का लक्ष्य रखा - dd / MM / yyyy; और यह मेरा जवाब 2018-11-20 का उत्पादन करता है
Yousef Albakoush

खैर सब 2018/11/20 के पहले है नहीं dd / mm / yyyy लेकिन yyyy-MM-dd। लेकिन प्रतिपादन वास्तव में प्रणाली (और स्थानीय) निर्भर है। मेरे सिस्टम पर यह घंटे, मिनट और सेकंड (सभी शून्य) भी पैदा करता है। ऐसा इसलिए है क्योंकि आपने एसक्यूएल को यह नहीं बताया कि तारीख को स्ट्रिंग के रूप में कैसे दर्शाया जाना चाहिए, और ओपी को एक सटीक स्ट्रिंग प्रारूप की आवश्यकता है।
त्रिकोट

सबसे पहले, 2018-11-20 क्योंकि मेरा पीसी अरबी भाषा के उपयोग के लिए कॉन्फ़िगर किया गया है; दूसरे, मैं अपने पीसी में शॉर्ट डेट बदलने के बाद इसे
आजमाऊंगा
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.