Вы должны просто иметь возможность сделать его десятичным, добавив десятичную точку, например 91.0
и 100.0
, чтобы избежать целочисленного деления проблем:
DECLARE @date DATETIME
set @date = getdate();
select DATEPART(dd,@date) TheDay,
(DATEPART(dd,@date)/91.0) DivBy91,
(DATEPART(dd,@date)/91.0) * 100.0 Result
Результат:
TheDay DivBy91 Result
19 0.208791 20,8791000
Если целочисленный дивиденд делится на целочисленный делитель, результатом является целое число, у которого усечена любая дробная часть результата.
Чтоцелочисленное деление будет производить 0
в столбце 2, что приводит к тому, что ваш результат равен 0.