?
Solved

Trim decimal places from Varchar field

Posted on 2013-10-31
7
Medium Priority
?
372 Views
Last Modified: 2013-10-31
Hi.. I have varchar field with values like this
00.1231556
123.99999999
56.12344455

Only need to 2 decimal place

00.12
123.99
56.123

what's the syntax ?
0
Comment
Question by:JElster
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
7 Comments
 
LVL 26

Expert Comment

by:Shaun Kline
ID: 39614325
The ROUND function would work.
ROUND(<value>, 2, 1)
0
 
LVL 26

Accepted Solution

by:
Shaun Kline earned 440 total points
ID: 39614331
Sorry, forgot about the varchar.

So CAST(ROUND(CAST(<value> AS decimal), 2, 1) AS varchar)
0
 
LVL 1

Author Comment

by:JElster
ID: 39614337
Error converting data type varchar to float.
0
Get MongoDB database support online, now!

At Percona’s web store you can order your MongoDB database support needs in minutes. No hassles, no fuss, just pick and click. Pay online with a credit card. Handle your MongoDB database support now!

 
LVL 26

Expert Comment

by:Shaun Kline
ID: 39614342
Another option would be to use CHARINDEX to find the position of the period, add 2 to that value and then use LEFT:

LEFT(<value>, CHARINDEX('.', <value>) + 2)
0
 
LVL 66

Assisted Solution

by:Jim Horn
Jim Horn earned 440 total points
ID: 39614345
Shaun_Kline is correct.   Slight correction though, adding percision and scale to the decimal
Declare @str varchar(10) = '123.456'

SELECT CAST(ROUND(CAST(@str AS decimal(5,2)), 2, 1) AS varchar) 

Open in new window

This does beg the obvious question though, why is a column with numeric values a varchar data type?
0
 
LVL 53

Expert Comment

by:COBOLdinosaur
ID: 39614361
As you have posted this in javascript, I assume you want the javascript to pre-format for you and the code for that is:

var twoPlacedFloat = parseFloat(yourString).toFixed(2);

Cd&
0
 
LVL 26

Expert Comment

by:Shaun Kline
ID: 39614362
Based on the error you posted, I'm guessing you have non-numeric data (maybe empty strings or NULLs) in that field as well. You can use the ISNUMERIC function to filter out records that does not contain numbers in your field.
0

Featured Post

Free learning courses: Active Directory Deep Dive

Get a firm grasp on your IT environment when you learn Active Directory best practices with Veeam! Watch all, or choose any amount, of this three-part webinar series to improve your skills. From the basics to virtualization and backup, we got you covered.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

A Stored Procedure in Microsoft SQL Server is a powerful feature that it can be used to execute the Data Manipulation Language (DML) or Data Definition Language (DDL). Depending on business requirements, a single Stored Procedure can return differe…
It is possible to export the data of a SQL Table in SSMS and generate INSERT statements. It's neatly tucked away in the generate scripts option of a database.
This video shows how to set up a shell script to accept a positional parameter when called, pass that to a SQL script, accept the output from the statement back and then manipulate it in the Shell.
Via a live example, show how to extract insert data into a SQL Server database table using the Import/Export option and Bulk Insert.
Suggested Courses

762 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question