为什么 SELECT 1/2 返回 0?

Ano*_*mus 19 sql-server-2008 sql-server t-sql

正如标题所说。我什至尝试过SELECT CONVERT(NUMERIC, 1/2)也返回0。

我正在使用 SQL Server 2008。

Phi*_*lᵀᴹ 29

它们是整数。

尝试:

select 1.0/2.0;
Run Code Online (Sandbox Code Playgroud)

或者:

select CONVERT(NUMERIC,1)/CONVERT(NUMERIC,2);
Run Code Online (Sandbox Code Playgroud)


Tar*_*ryn 14

首先,您将数字作为整数执行,但其次,您还没有定义数字数据类型的精度和小数位数

尝试这个:

SELECT CONVERT(NUMERIC(5, 2), 1.0/2.0)
Run Code Online (Sandbox Code Playgroud)

甚至

SELECT CONVERT(NUMERIC(5, 2), 1/2.0)
Run Code Online (Sandbox Code Playgroud)