MS SQL Server Concepts and Programming Question:
Download Job Interview Questions and Answers PDF
How To Convert Character Strings into Numeric Values?
Answer:
Sometimes you need to convert numeric values enclosed in character strings back to numeric values by using the CONVERT() function. When converting character strings to values with CONVERT(), you need to remember two rules:
* Leading and trailing space characters are ignored.
* The input string must represent a numeric literal that matches the target numeric data type.
* If the input string does not represent a numeric literal that matches the target numeric data type, you will get a conversion error.
The tutorial exercise below shows you how to use the CONVERT() function to convert strings to values:
SELECT CONVERT(NUMERIC(10,5), ' 12345.12 ');
GO
12345.12000
-- Input does not match the target data type
SELECT CONVERT(INT, '12345.12');
GO
Msg 245, Level 16, State 1, Line 1
Conversion failed when converting the varchar
value '12345.12' to data type int.
-- Input does not match the target data type
SELECT CONVERT(NUMERIC(10,5), '12345.12E+00');
GO
Msg 8114, Level 16, State 5, Line 1
Error converting data type varchar to numeric.
-- Double conversion works
SELECT CONVERT(NUMERIC(10,5),
CONVERT(FLOAT(24), ' 12345.12E+00 '));
GO
12345.12012
SELECT CONVERT(FLOAT(24), ' 12345.12E+00 ');
* Leading and trailing space characters are ignored.
* The input string must represent a numeric literal that matches the target numeric data type.
* If the input string does not represent a numeric literal that matches the target numeric data type, you will get a conversion error.
The tutorial exercise below shows you how to use the CONVERT() function to convert strings to values:
SELECT CONVERT(NUMERIC(10,5), ' 12345.12 ');
GO
12345.12000
-- Input does not match the target data type
SELECT CONVERT(INT, '12345.12');
GO
Msg 245, Level 16, State 1, Line 1
Conversion failed when converting the varchar
value '12345.12' to data type int.
-- Input does not match the target data type
SELECT CONVERT(NUMERIC(10,5), '12345.12E+00');
GO
Msg 8114, Level 16, State 5, Line 1
Error converting data type varchar to numeric.
-- Double conversion works
SELECT CONVERT(NUMERIC(10,5),
CONVERT(FLOAT(24), ' 12345.12E+00 '));
GO
12345.12012
SELECT CONVERT(FLOAT(24), ' 12345.12E+00 ');
Download MS SQL Server Interview Questions And Answers
PDF
Previous Question | Next Question |
How To How To Convert Numeric Expression Data Types using the CONVERT() Function?? | What Happens When Converting Big Values to Integers? |