Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 在teradata中将十进制转换为整数_Sql_Teradata - Fatal编程技术网

Sql 在teradata中将十进制转换为整数

Sql 在teradata中将十进制转换为整数,sql,teradata,Sql,Teradata,我对Teradata执行了上述查询,这两个查询都产生了下限值 这是从12月到整型的硬性规定吗?也就是说,它是否总是返回下限值?是的。 如果将十进制值转换为整数,小数位数将丢失。这是所有语言(我知道)的情况。是的。 如果将十进制值转换为整数,小数位数将丢失。这是所有语言(我知道)的情况。正如juergen_d已经说过的,这应该是任何语言的默认值 当您想要舍入而不是截断时,您可以执行强制转换(9.9作为DEC(9,0))或者在TD14中也有舍入功能。但是请注意,舍入有两种算法,请检查您的系统是否使用

我对Teradata执行了上述查询,这两个查询都产生了下限值

这是从12月到整型的硬性规定吗?也就是说,它是否总是返回下限值?

是的。 如果将十进制值转换为整数,小数位数将丢失。这是所有语言(我知道)的情况。

是的。
如果将十进制值转换为整数,小数位数将丢失。这是所有语言(我知道)的情况。

正如juergen_d已经说过的,这应该是任何语言的默认值


当您想要舍入而不是截断时,您可以执行强制转换(9.9作为DEC(9,0))或者在TD14中也有舍入功能。但是请注意,舍入有两种算法,请检查您的系统是否使用您想要的算法:-)

正如juergen_d已经说过的,这应该是任何语言的默认值


当您想要舍入而不是截断时,您可以执行强制转换(9.9作为DEC(9,0))或者在TD14中也有舍入功能。但是请注意,舍入有两种算法,请检查您的系统是否使用了您想要的算法:-)

您使用的是哪个版本的TD?如果是14,是否只使用CEIL函数

如果在那之前,也许尝试一下

sel cast(9.1 as integer)as inttt;

Result:
9

sel cast(9.9 as integer)as inttt;
Result:
9
CASE-WHEN-CAST CAST(编号为DEC(9,0)

(您可以根据自己的舍入逻辑进行调整)

您使用的是哪一版本的TD?如果是14,只需使用CEIL功能即可

如果在那之前,也许尝试一下

sel cast(9.1 as integer)as inttt;

Result:
9

sel cast(9.9 as integer)as inttt;
Result:
9
CASE-WHEN-CAST CAST(编号为DEC(9,0)

(您可以根据自己的舍入逻辑进行调整)

以下代码可用于对十进制数进行舍入:

CASE WHEN CAST(number AS DEC(9,0) < number THEN CAST(number AS
DEC(9,0) + 1 ELSE CAST(number AS DEC(9,0)

以下代码可用于对十进制数进行四舍五入:

CASE WHEN CAST(number AS DEC(9,0) < number THEN CAST(number AS
DEC(9,0) + 1 ELSE CAST(number AS DEC(9,0)
试试这个

Select CAST(number + 0.5 AS integer) from sometable
试试这个

Select CAST(number + 0.5 AS integer) from sometable