Right now, my code has the following conversion for a date field:
convert(varchar, Citation.PublishedOn, 101)
However, that returns dates like 03/01/2010. The request was to have the dates display as 3/1/2010 (without the leading zeros, but with a 4 digit year). I've looked at http://msdn.microsoft.com/en-us/library/ms187928.aspx and I'm not seeing anything that explicitly excludes leading zeros.
How do I format the date to exclude leading zeros?
You can use the FORMAT function, which is built for just this sort of thing, although I agree that if you can wait to format it on the client side you may be better off as you give yourself the flexibility to use that data as a date at any point along the line (ymmv - just more of a best practice).
Example:
FORMAT ( table.myDateColumn, 'd', 'en-US' )
See http://msdn.microsoft.com/en-us/library/hh213505.aspx
May not be available in older versions of SQL Server
This is how I would do it:
DECLARE @dt datetime
SET @dt= Citation.PublishedOn
SELECT LTRIM(STR(MONTH(@dt)))+'/'+LTRIM(STR(DAY(@dt)))+'/'+STR(YEAR(@dt),4)
You select your date, then extract the day, month and year from it and chop the leading zeroes off the month and day using ltrim()
.
If you don't want to declare a variable, you can do this
SELECT LTRIM(STR(MONTH(Citation.PublishedOn)))+'/'+LTRIM(STR(DAY(Citation.PublishedOn)))+'/'+STR(YEAR(Citation.PublishedOn),4)
However, that would mean pulling out the same value multiple times.
You could do:
STUFF(REPLACE('/'+CONVERT(CHAR(10), Citation.PublishedOn ,101),'/0','/'),1,1,'')
(Based on http://www.sqlservercentral.com/Forums/Topic1241877-1292-1.aspx.)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With