SQL में अग्रणी 0 के साथ मुझे महीने और दिन कैसे मिलते हैं(उदा। 9=> 09)




tsql (6)

DECLARE @day CHAR(2)

SET @day = DATEPART(DAY, GETDATE())

PRINT @day

यदि आज 9 दिसंबर था, तो ऊपर "9" प्रिंट होगा।

मैं "09" प्रिंट करना चाहता हूं। मैं यह कार्य कैसे करूं?


अपना खुद का तरीका रोल करें

यह किसी भी चीज को छोड़ देने के लिए एक सामान्य तरीका है। अवधारणा एक संस्करण बनाने के लिए REPLICATE का उपयोग करना है जो कुछ भी नहीं है, लेकिन गद्देदार मूल्य है। यदि डेटा NULLable है, तो isnull / coalesce कॉल का उपयोग करके, वास्तविक मूल्य के साथ इसे संक्षिप्त करें। अब आपके पास एक स्ट्रिंग है जो लक्ष्य की लंबाई से दोगुना है और लक्ष्य की लंबाई बिल्कुल या बीच में कहीं है। अब बस N दाएं-सबसे वर्णों से अलग है और आपके पास एक बाएं गद्देदार स्ट्रिंग है।

SELECT RIGHT(REPLICATE('0', 2) + CAST(DATEPART(DAY, '2012-12-09') AS varchar(2)), 2) AS leftpadded_day

देशी जाओ

msdn.microsoft.com/en-us/library/ms187928.aspx फ़ंक्शन प्री-स्वरूपित दिनांक प्राप्त करने के लिए विभिन्न तरीके प्रदान करता है। प्रारूप 103 निर्दिष्ट करता है dd जिसका अर्थ है कि प्रमुख शून्य को संरक्षित किया गया है ताकि सभी को पहले 2 वर्णों से अलग करना पड़े।

SELECT CONVERT(char(2), CAST('2012-12-09' AS datetime), 103) AS convert_day

varchar के रूप में सही ('0000' + कास्ट (तिथि, वर्ष, GETDATE ()), 4) + '-' + + सही ('00 '+ कास्ट (महीने, GETDATE ()) का चयन करें (2)), 2) + '-' + + सही ('00 '+ कास्ट (तारीख, दिन, गेटडे) ()) के रूप में varchar (2)), 2) वर्षमान के रूप में


अपने दिनांक मानों को पूर्व-स्वरूपित करने के लिए SQL सर्वर की दिनांक शैलियों का उपयोग करें।

SELECT
    CONVERT(varchar(2), GETDATE(), 101) AS monthLeadingZero  -- Date Style 101 = mm/dd/yyyy
    ,CONVERT(varchar(2), GETDATE(), 103) AS dayLeadingZero   -- Date Style 103 = dd/mm/yyyy

इसे 00 के साथ पैड करें और दाईं ओर 2 लें:

DECLARE @day CHAR(2)

SET @day = RIGHT('00' + CONVERT(NVARCHAR(2), DATEPART(DAY, GETDATE())), 2)

print @day

SQL सर्वर 2012 और ऊपर के लिए, अग्रणी शून्य के साथ:

 SELECT FORMAT(GETDATE(),'MM') 

के बिना:

SELECT    MONTH(GETDATE())

SELECT RIGHT('0' 
             + CONVERT(VARCHAR(2), Month( column_name )), 2) 
FROM   table 




tsql