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 3, 2013 4:15 PM
 SSChasing Mays Group: General Forum Members Last Login: Thursday, October 20, 2016 11:40 AM Points: 626, Visits: 1,948
 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 3, 2013 7:12 PM
 SSCrazy Eights Group: General Forum Members Last Login: Today @ 7:14 PM Points: 8,200, Visits: 17,740
 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.General Disclaimer:Are you seriously taking the advice and code from someone from the internet without testing it? Do you at least understand it? Or can it easily kill your server?How to post data/code on a forum to get the best help: Option 1 / Option 2
Post #1501396
 Posted Thursday, October 3, 2013 11:06 PM
 SSChasing Mays Group: General Forum Members Last Login: Thursday, October 20, 2016 11:40 AM Points: 626, Visits: 1,948
 It's going to represent the number of seconds, so the possible range is 00 to 59.
Post #1501419
 Posted Thursday, October 3, 2013 11:23 PM
 SSC-Enthusiastic Group: General Forum Members Last Login: Yesterday @ 5:42 PM Points: 151, Visits: 761
 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 3, 2013 11:40 PM
 SSChasing Mays Group: General Forum Members Last Login: Yesterday @ 12:05 PM Points: 620, Visits: 3,581
 I just use a concatenate and a right.So select right('00' + cast(1 as varchar) ,2)
Post #1501425
 Posted Friday, October 4, 2013 8:03 AM
 Ten Centuries Group: General Forum Members Last Login: Wednesday, September 28, 2016 9:11 AM Points: 1,042, Visits: 1,395
 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 4, 2013 8:19 AM
 SSCrazy Eights Group: General Forum Members Last Login: Today @ 7:14 PM Points: 8,200, Visits: 17,740
 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.General Disclaimer:Are you seriously taking the advice and code from someone from the internet without testing it? Do you at least understand it? Or can it easily kill your server?How to post data/code on a forum to get the best help: Option 1 / Option 2
Post #1501618
 Posted Monday, October 7, 2013 11:26 AM
 SSChasing Mays Group: General Forum Members Last Login: Thursday, October 20, 2016 11:40 AM Points: 626, Visits: 1,948
 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 9, 2013 11:10 PM
 Grasshopper Group: General Forum Members Last Login: Tuesday, February 9, 2016 7:36 PM Points: 15, Visits: 173
 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