Sql server 返回Select语句中带刻度的除数结果
我正在尝试运行此查询,但在进行数学计算后,似乎没有正确格式化数字。刻度应为2,但它不会按应有的方式显示Sql server 返回Select语句中带刻度的除数结果,sql-server,sql-server-2008,tsql,Sql Server,Sql Server 2008,Tsql,我正在尝试运行此查询,但在进行数学计算后,似乎没有正确格式化数字。刻度应为2,但它不会按应有的方式显示 SELECT 30 / 60 as Diff FROM Table 它返回为0 SELECT Convert( Numeric(8,2), 30 / 60 ) as Diff FROM Table 返回值为0.00 如何根据需要使其返回0.50?在除法之前将其转换为数值,或将实数而不是整数除法。当进行整数运算时,任何小数都会被删除。分数被删除后转换对你没有任何好处 SELECT CONVE
SELECT 30 / 60 as Diff FROM Table
它返回为0
SELECT Convert( Numeric(8,2), 30 / 60 ) as Diff FROM Table
返回值为0.00
如何根据需要使其返回
0.50
?在除法之前将其转换为数值,或将实数而不是整数除法。当进行整数运算时,任何小数都会被删除。分数被删除后转换对你没有任何好处
SELECT CONVERT(NUMERIC(8,2),30.0/60.0) AS DIFF FROM TABLE
或者如果选择列而不是使用数字
SELECT CONVERT(NUMERIC(8,2),columnA)/CONVERT(NUMERIC(8,2),columnB) AS DIFF FROM TABLE
(为了确保除法是按照我们想要的规则进行的,将两者进行转换)在进行除法之前将其转换为数值,或者将实数而不是整数进行除法。当进行整数运算时,任何小数都会被删除。分数被删除后转换对你没有任何好处
SELECT CONVERT(NUMERIC(8,2),30.0/60.0) AS DIFF FROM TABLE
或者如果选择列而不是使用数字
SELECT CONVERT(NUMERIC(8,2),columnA)/CONVERT(NUMERIC(8,2),columnB) AS DIFF FROM TABLE
(将两者进行转换,以确保按照我们想要的规则进行分割)您可以尝试以下方法,实现方法很少。使用变量,或仅对字段本身执行
CAST
,CONVERT
SELECT (CAST(30 AS DECIMAL(8,2)) / CAST(60 AS DECIMAL(8,2))) as Diff FROM Table
SELECT (CAST(30/60) AS DECIMAL(8,2)) as Diff FROM Table
SELECT (30/60.0) as Diff FROM Table;
SELECT CONVERT(DECIMAL(8,2), 30/60.0) as Diff FROM Table
请看一下这个:您可以尝试以下方法,实现它的方法很少。使用变量,或仅对字段本身执行
CAST
,CONVERT
SELECT (CAST(30 AS DECIMAL(8,2)) / CAST(60 AS DECIMAL(8,2))) as Diff FROM Table
SELECT (CAST(30/60) AS DECIMAL(8,2)) as Diff FROM Table
SELECT (30/60.0) as Diff FROM Table;
SELECT CONVERT(DECIMAL(8,2), 30/60.0) as Diff FROM Table
请看以下内容:谢谢你的回答,但你能举个例子吗?@tvanfosson Hi感谢你注意到前面的打字错误:)我想我是在来回转换。谢谢你的回答,但是你能举个例子吗?@tvanfosson Hi感谢你注意到前面的打字错误:)我想我是在来回转换。