2015-10-20 3 views
0

У меня есть код в одной из наших хранимых процедур.Html-код Не возвращающие десятичные значения в SQL Server

SELECT 
    '<table width=100% style=''FONT-SIZE: 10px; FONT-FAMILY: MS Reference Sans Serif;''><tr><td>' + 
    '</td><Other Wages</td><td al<td align=center>' + 
    LTRIM(STR(0.30))+'</td></tr></table>' AS SCHEDSTATS 

Проблема с вышеуказанным кодом заключается в том, что он не возвращает десятичные значения. выход коды выше пришел, как это,

<table width=100% style='FONT-SIZE: 10px; FONT-FAMILY: MS Reference Sans Serif;'> 
    <tr> 
     <td></td><Other Wages</td> 
     <td al<td align=center>0</td></tr></table> 

(Я дал 0.30 десятичного значения, которое становится 0 на выходе). Как показать десятичное значение в приведенном выше коде?

Спасибо за помощь

+0

Ого, вы HTML-код генерируется в зр?: -O – Oscar

+0

что вы хотите ??? – wiretext

+0

@oscar. Да, кажется, очень старая sp в приложении, которое генерирует электронную почту для пользователей в html-формате – bmsqldev

ответ

3

Syntaxes

STR (float_expression [ , length [ , decimal ] ]) 

float_expression

Is an expression of approximate numeric (float) data type with a decimal point. 

длина

Is the total length. This includes decimal point, sign, digits, and spaces. The default is 10. 

десятичные

Is the number of places to the right of the decimal point. decimal must be less than or equal to 16. If decimal is more than 16 then the result is truncated to sixteen places to the right of the decimal point. 

Код

SELECT STR(0.30, 3,2); 

, если вы не хотите каких-либо изменений вы просто хотите 0.30 не использовать STR Используйте LTRIM((0.30))

2

Вы получили ваш синтаксис STR неправильно. Синтаксис является

STR (номер [, длина [, decimal_places]])

так что вам нужно, чтобы обеспечить десятичные места в STR, чтобы увидеть десятичное значение, либо он получает скругленным.

Вы можете найти ниже ссылку полезным:

http://www.techonthenet.com/sql_server/functions/str.php

2

Это не проблема HTML. Функция STR() возвращает округленное целое число, если вы не указали число десятичных знаков больше 0.

Вы должны написать «STR (0.30, 5, 2)», что означает «вернуть строку максимум 5 цифр, с 2 десятичных знака ".

Результат будет правильным.

1

SQL Server 2008R2

select LTRIM(STR(0.30)) 
select LTRIM(STR(0.30,8,2)) 

0,30

Смежные вопросы