Sql server 返回Select语句中带刻度的除数结果

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

我正在尝试运行此查询,但在进行数学计算后,似乎没有正确格式化数字。刻度应为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 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感谢你注意到前面的打字错误:)我想我是在来回转换。