Получить только две десятичные точки в типе данных money в SQL Server

SELECT ROUND(123.4567, 2)` gives me `123.4600`

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

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

Решение:

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

person IsmailS    schedule 18.08.2010    source источник


Ответы (5)


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

person abatishchev    schedule 18.08.2010
comment
+1. Привязка вот так в репитере сработала <%#DataBinder.Eval(Container.DataItem, "FieldName","{0:0.00}")%>. Спасибо, что посоветовал мне решить настоящую проблему. - person IsmailS; 18.08.2010
comment
@Ismail: Рад, что помог! :) P.S. У меня были те же проблемы - stackoverflow.com/questions/1308259/ stackoverflow.com/questions/2938296/ - person abatishchev; 18.08.2010
comment
Но это не работает в компонентах редактирования, таких как сетка EvExpress. Этим нарушаются формы редактирования. - person f470071; 02.10.2015

SELECT CAST(ROUND(123.4567, 2) AS MONEY)

Буду делать то, что вам нужно

person Neil Knight    schedule 18.08.2010
comment
Это работает, но когда я присваиваю значение полю в Repeater на моей странице .aspx, оно снова показывает два конечных нуля. Я использую Linq для sql. - person IsmailS; 18.08.2010
comment
Вы можете использовать ToString () в своем репитере, указав нужный формат. - person Neil Knight; 18.08.2010
comment
+1 спасибо за ответ. Ваш ответ тоже правильный, глядя на мой вопрос. Но @abatishchev попытался решить большую проблему вместо того, чтобы просто ответить на мой вопрос. Вот почему я принял его ответ. - person IsmailS; 18.08.2010

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

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

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

person Christopher Huff    schedule 26.10.2017

SELECT ROUND(123.4567, 2,1) 

См. http://msdn.microsoft.com/en-us/library/ms175003(SQL.90).aspx

person Anirudha    schedule 21.11.2010

SELECT FORMAT(123.4567,'N2')

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

person Abhishek Singh    schedule 05.04.2016