sql server - एक TSQL डेटाटाइम फ़ील्ड से YYYY-MM-DD प्रारूप में दिनांक कैसे प्राप्त करें?




sql-server (14)

SQL सर्वर 2008 से आप यह कर सकते हैं: CONVERT (दिनांक, getdate ())

मैं YYYY-MM-DD प्रारूप में SQL सर्वर से दिनांक कैसे प्राप्त करूं? मुझे SQL Server 2000 और ऊपर के साथ काम करने की आवश्यकता है। SQL सर्वर में ऐसा करने का कोई आसान तरीका है या परिणाम सेट पुनर्प्राप्त करने के बाद इसे प्रोग्रामिक रूप से परिवर्तित करना आसान होगा?

मैंने माइक्रोसॉफ्ट तकनीक पर सीएएसटी और कन्वर्ट पढ़ा है, लेकिन जो प्रारूप मैं चाहता हूं वह सूचीबद्ध नहीं है और डेट प्रारूप बदलना एक विकल्प नहीं है।


YYYYMMDD के लिए प्रयास करें

select convert(varchar,getDate(),112)

मैंने केवल SQLServer2008 पर परीक्षण किया है।


अपनी कास्ट में और लिंक कन्वर्ट करें, इस प्रकार शैली 126 का उपयोग करें:

CONVERT (varchar(10), DTvalue, 126)

यह समय कम कर देता है। Yyyy-mm-dd में इसे रखने की आपकी आवश्यकता का अर्थ है कि यह एक स्ट्रिंग डेटाटाइप और डेटाटाइम होना चाहिए।

स्पष्ट रूप से, मैं इसे क्लाइंट पर तब तक करूँगा जब तक कि आपके पास अच्छे कारण न हों।


आपके द्वारा बाद में फॉर्म ऑनलाइन दस्तावेजों में सूचीबद्ध है।

http://msdn.microsoft.com/en-us/library/aa226054(SQL.80).aspx

उदाहरण के लिए, निम्न आज़माएं:

select convert(varchar,getDate(),120)
select convert(varchar(10),getDate(),120)

एक और तरीका ...

CONVERT(varchar, DATEPART(yyyy, @datetime)) + '/' + CONVERT(varchar, DATEPART(mm, @datetime)) + '/' + CONVERT(varchar, DATEPART(dd, @datetime)) 

प्रत्येक कन्वर्ट / कास्ट फ़ंक्शंस के लिए CASE कथन का उपयोग करना हमेशा मेरे लिए काम करता है:

तालिका तालिका में अपने XXX नाम को प्रतिस्थापित करें, और उस तालिका में अपने डेटाटाइम फ़ील्ड के नाम के साथ IssateDate_dat:

SELECT  issueDate_dat, CONVERT(varchar, DATEPART(yyyy, issuedate_dat))  AS issueDateYYYY
, CASE WHEN (len(CONVERT(varchar, DATEPART(mm, issuedate_dat))) < 2) THEN '0' +CONVERT(varchar, DATEPART(mm, issuedate_dat)) ELSE CONVERT(varchar, DATEPART(mm, issuedate_dat)) END AS  issueDateMM
, CASE WHEN (len(CONVERT(varchar, DATEPART(dd, issuedate_dat))) <2) THEN '0' +CONVERT(varchar, DATEPART(dd, issuedate_dat)) ELSE CONVERT(varchar, DATEPART(dd, issuedate_dat)) END AS issueDateDD
FROM            tableXXXXY

उम्मीद है कि यह सहायक था। chagbert।


मै इस्तेमाल करूंगा:

CONVERT(char(10),GETDATE(),126)

यदि आप बाद में एक varchar बजाय इसे एक तिथि के रूप में उपयोग करना चाहते हैं, तो इसे वापस परिवर्तित करना न भूलें:

select convert(datetime,CONVERT(char(10), GetDate(),126))

यह समाधान मेरे लिए सरल और प्रभावी काम करता है (126 के साथ भी)

CONVERT(NVARCHAR(MAX), CAST(GETDATE() as date), 120)

SELECT CONVERT(NVARCHAR(20), GETDATE(), 23)


 IFormatProvider culture = new System.Globalization.CultureInfo("fr-FR", true);

cmdGetPaymentStatement.Parameters.AddWithValue("@pStartDate", DateTime.Parse("22/12/2017", culture, System.Globalization.DateTimeStyles.AssumeLocal)).IsNullable = true;

SELECT CONVERT(char(10), GetDate(),126)

उस घंटे के वर्चर्स चॉप के आकार को सीमित करना जो आप नहीं चाहते हैं।


SELECT convert(varchar, getdate(), 100) -- mon dd yyyy hh:mmAM

SELECT convert(varchar, getdate(), 101) -- mm/dd/yyyy – 10/02/2008                  

SELECT convert(varchar, getdate(), 102) -- yyyy.mm.dd – 2008.10.02           

SELECT convert(varchar, getdate(), 103) -- dd/mm/yyyy

SELECT convert(varchar, getdate(), 104) -- dd.mm.yyyy

SELECT convert(varchar, getdate(), 105) -- dd-mm-yyyy

SELECT convert(varchar, getdate(), 106) -- dd mon yyyy

SELECT convert(varchar, getdate(), 107) -- mon dd, yyyy

SELECT convert(varchar, getdate(), 108) -- hh:mm:ss

SELECT convert(varchar, getdate(), 109) -- mon dd yyyy hh:mm:ss:mmmAM (or PM)

SELECT convert(varchar, getdate(), 110) -- mm-dd-yyyy

SELECT convert(varchar, getdate(), 111) -- yyyy/mm/dd

SELECT convert(varchar, getdate(), 112) -- yyyymmdd

SELECT convert(varchar, getdate(), 113) -- dd mon yyyy hh:mm:ss:mmm

SELECT convert(varchar, getdate(), 114) -- hh:mm:ss:mmm(24h)

SELECT convert(varchar, getdate(), 120) -- yyyy-mm-dd hh:mm:ss(24h)

SELECT convert(varchar, getdate(), 121) -- yyyy-mm-dd hh:mm:ss.mmm

SELECT convert(varchar, getdate(), 126) -- yyyy-mm-ddThh:mm:ss.mmm

replace(convert(varchar, getdate(), 111), '/','-')

"कुछ बंद करने" के बिना भी चाल चलेंगे।







tsql