Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.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 server 删除浮点数整数部分的最佳方法_Sql Server_Sql Server 2008 R2_Rounding - Fatal编程技术网

Sql server 删除浮点数整数部分的最佳方法

Sql server 删除浮点数整数部分的最佳方法,sql-server,sql-server-2008-r2,rounding,Sql Server,Sql Server 2008 R2,Rounding,要删除浮点数的整数部分,我使用: update ACTIVITIES set TIME = TIME - FLOOR(TIME) --TIME is float 这在计算中仍然有效。由于浮点计算,存在一些错误 编辑:我无法修改架构,时间必须保持浮动 我需要这样做的原因是,由于一个错误,浮点数变成>1,即使小数部分仍然可以。所以我需要去掉整数部分 我现在无法复制它,但我记得我有这样的东西: 1.6666666 7变为0.6666542534,而它应该是0.66666 7 请注意,这是遗留代码,因

要删除浮点数的整数部分,我使用:

update ACTIVITIES set TIME = TIME - FLOOR(TIME) --TIME is float
这在计算中仍然有效。由于浮点计算,存在一些错误

编辑:我无法修改架构,
时间
必须保持
浮动

我需要这样做的原因是,由于一个错误,浮点数变成>1,即使小数部分仍然可以。所以我需要去掉整数部分

我现在无法复制它,但我记得我有这样的东西:

1.6666666 7
变为
0.6666542534
,而它应该是
0.66666 7

请注意,这是遗留代码,因此
TIME
是一个浮点数,而如果我从头开始编写,我将使用
TIME
数据类型

所以我的问题是:这是正确的还是可以改进的

update ACTIVITIES set TIME = TIME - FLOOR(TIME)

您只是想截断整数部分并保留小数吗?或者你想进行任何舍入吗?你能把列转换成十进制吗?请注意,为了清楚起见,我加了“时间是浮动的”。我必须将该列保留为浮动列,我必须在不破坏模式的情况下运行维护脚本