T-SQL Simple Two Decimal Places

Hello:

I can't believe that I can't find a simple example of this on the internet, somewhere.

All I want is the number 64.25--not 64 and certainly not 64.00.

The best that I can come up with is the following, and it is giving me 64:

CAST(UPR30301.MTDHOURS_4/100 AS DECIMAL(18, 2))

How do I take "UPR30301.MTDHOURS_4/100" and have the result be 64.25?  That's all I want.  It should be very simple.

Thanks!

TBSupport
LVL 1
TBSupportAsked:
Who is Participating?

Improve company productivity with a Business Account.Sign Up

x
 
Jim HornConnect With a Mentor Microsoft SQL Server Developer, Architect, and AuthorCommented:
>How do I take "UPR30301.MTDHOURS_4/100" and have the result be 64.25
UPR30301.MTDHOURS_4/CAST(100 AS DECIMAL(18, 2))

Open in new window

What you are experiencing is 'integer division', where T-SQL will interpret the division of two integers as a result that is also an integer, hence 5 / 2 = 2 and not 2.5.

To avoid this, you need to CAST either the numerator or the denominator as a decimal, and not the entire result.

T-SQL Integer Division
0
 
mebaby333It AdminCommented:
if your in SSRS you should be able to simply right click on the field in the form and then press properties and format .... then choose the format tab and enter Format Code as "0.00"
0
 
ste5anSenior DeveloperCommented:
The problem is the data type precedence. Seems that you're dividing an integer by an integer. Thus the result is integer. The additional cast cannot restore the missing digits as they are not part of the result integer. See

DECLARE @decimal DECIMAL (19,2) = 100;
DECLARE @integer INT = 100;

SELECT	@decimal / 3,		
	@integer / 3,
	@integer / 3.0,
	CAST( @integer / 3.0 AS DECIMAL(19, 2) );

Open in new window

0
 
Scott PletcherSenior DBACommented:
CAST(UPR30301.MTDHOURS_4/100.0 AS DECIMAL(18, 2))
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.