Получить только два десятичных знака в типе данных деньги в SQL Server - PullRequest
8 голосов
/ 18 августа 2010
SELECT ROUND(123.4567, 2)` gives me `123.4600`

Но мне нужно 123.46.

Тип данных поля - деньги.

Решение:

<%# DataBinder.Eval(Container.DataItem, "FieldName","{0:0.00}") %>

Ответы [ 5 ]

18 голосов
/ 18 августа 2010
SELECT CAST(ROUND(123.4567, 2) AS MONEY)

Будет делать то, что вы после

9 голосов
/ 18 августа 2010

Если применимо, отформатируйте на уровне представления, а не на уровне данных, т.е. прочитайте все данные и обрежьте их позже (например, в клиенте C #)

1 голос
/ 26 октября 2017

@ IsmailS - Для меня общая картина - позволить серверу данных максимально отформатировать данные, особенно когда это что-то простое, например, встроенное приведение.Это дает меньше беспорядка в вашем другом коде.Например, Цена , денежное поле:

select CAST(Price as numeric(17,2)) Price from PriceTable

YMMV - это мой личный опыт.

1 голос
/ 21 ноября 2010
0 голосов
/ 05 апреля 2016
SELECT FORMAT(123.4567,'N2')

Это вам поможет

...