Eminem
Eminem

Reputation: 7484

SQL Server 2005 decimal field behaviour

Ive create a simple table with a field x of type decimal(28,15)

I run the following query to insert a value:

insert into testtable values (1234567890123)

when I do a select from testtable I, field x has a value of

1234567890123.000000000000000

Is there a way to specify (perhaps in the table design) that sql server should NOT store the zero's after the decimal if its not required? i.e. when doing a select the data will be returned as

1234567890123

Also why does insert into testtable values (12345678901234) give the following error :

Arithmetic overflow error converting numeric to data type numeric.

Upvotes: 2

Views: 444

Answers (2)

Lyth
Lyth

Reputation: 2211

Also why does insert into testtable values (12345678901234) give the following error :

You specified a total width of 28 with 15 digits after decimal point. That leaves at most 13 digits before decimal point.

Is there a way to specify that sql server should NOT store the zero's after the decimal if its no required?

Strictly speaking, "decimal" is a fixed precision format and thus any number will occupy exactly the same space as any other number (see MSDN).

Upvotes: 1

Esh
Esh

Reputation: 856

Try the below query . it works fine ...

   select cast(1234567890123.000000000000000 as decimal)

Upvotes: 0

Related Questions