Recent PostsRecent Posts Popular TopicsPopular Topics
 Home Search Members Calendar Who's On

 Format Cast INT as Text Rate Topic Display Mode Topic Options
Author
 Message
 Posted Thursday, October 03, 2013 4:15 PM
 SSC-Addicted Group: General Forum Members Last Login: Today @ 5:31 PM Points: 463, Visits: 1,336
 I'm using CAST to conver integers to Varchar or Char, but when the value is less than 10 I want it to start with a 0, as in "07". But a 12 is still 12.What is the best way to do that?
Post #1501371
 Posted Thursday, October 03, 2013 7:12 PM
 SSCommitted Group: General Forum Members Last Login: Today @ 5:06 PM Points: 1,902, Visits: 4,221
 Are you just using integers with values from 0 to 99? Or Are you going to have values like '01', '12', '123', '57246' ? because you might want to add more zeroes.Depending on your answer, the solution could be different. Luis C.Please don't trust me, test the solutions I give you before using them.Forum Etiquette: How to post data/code on a forum to get the best help
Post #1501396
 Posted Thursday, October 03, 2013 11:06 PM
 SSC-Addicted Group: General Forum Members Last Login: Today @ 5:31 PM Points: 463, Visits: 1,336
 It's going to represent the number of seconds, so the possible range is 00 to 59.
Post #1501419
 Posted Thursday, October 03, 2013 11:23 PM
 SSC Journeyman Group: General Forum Members Last Login: Monday, December 09, 2013 4:58 PM Points: 89, Visits: 352
 dan-572483 (10/3/2013)It's going to represent the number of seconds, so the possible range is 00 to 59.one way is like the below. There may be a better method but this is the way i would use it. `DECLARE @seconds INT = 5DECLARE @Stringlength INT = 2SELECT REPLACE(STR(@seconds,@Stringlength),' ','0')-- output = 05`If you put anything greater than 9 it won't pad it with a 0 infront (e.g. 10 will be 10)
Post #1501423
 Posted Thursday, October 03, 2013 11:40 PM
 Mr or Mrs. 500 Group: General Forum Members Last Login: Today @ 7:32 PM Points: 544, Visits: 2,373
 I just use a concatenate and a right.So select right('00' + cast(1 as varchar) ,2)
Post #1501425
 Posted Friday, October 04, 2013 8:03 AM
 Right there with Babe Group: General Forum Members Last Login: Today @ 8:28 PM Points: 786, Visits: 944
 dogramone (10/3/2013)I just use a concatenate and a right.So select right('00' + cast(1 as varchar) ,2)I've used this method quite often. Simple enough.Kurt Kurt W. ZimmermanSR DBALefrak OrganizationNew York, NYhttp://www.linkedin.com/in/kurtwzimmerman
Post #1501612
 Posted Friday, October 04, 2013 8:19 AM
 SSCommitted Group: General Forum Members Last Login: Today @ 5:06 PM Points: 1,902, Visits: 4,221
 Just another way to do it. The Tally is just to generate the sample data and has nothing to do with the solution.`WITH Tally AS(SELECT TOP 60 ROW_NUMBER() OVER(ORDER BY object_id) nFROM sys.objects)SELECT RIGHT( 100 + n, 2)FROM Tally` Luis C.Please don't trust me, test the solutions I give you before using them.Forum Etiquette: How to post data/code on a forum to get the best help
Post #1501618
 Posted Monday, October 07, 2013 11:26 AM
 SSC-Addicted Group: General Forum Members Last Login: Today @ 5:31 PM Points: 463, Visits: 1,336
 dogramone (10/3/2013)I just use a concatenate and a right.So select right('00' + cast(1 as varchar) ,2)Simple and makes sense. Thanks!
Post #1502280
 Posted Wednesday, October 09, 2013 11:10 PM
 Forum Newbie Group: General Forum Members Last Login: Wednesday, December 04, 2013 6:34 PM Points: 1, Visits: 19
 A bit longer, but more obvious.`DECLARE @INT INT = 1 ;SELECT REPLICATE('0', 2 - LEN(@INT)) + CAST(@INT AS VARCHAR)`Pass the column name instead of @INT
Post #1503370

 Permissions