sql server更新步骤中的双舍入
我有一个问题:在我的数据库中有一个双值字段。我需要将该值四舍五入为一个常数步长: 例如,我将步长设置为20.0,希望值17.8变为20.0,值31.2变为40.0等等 我如何通过查询实现这一点sql server更新步骤中的双舍入,sql,sql-server-2008,sql-update,Sql,Sql Server 2008,Sql Update,我有一个问题:在我的数据库中有一个双值字段。我需要将该值四舍五入为一个常数步长: 例如,我将步长设置为20.0,希望值17.8变为20.0,值31.2变为40.0等等 我如何通过查询实现这一点 提前感谢您可以将值除以步长,四舍五入,然后乘以步长。大多数SQL方言都有算术函数 declare @stepsize float = 20.0 declare @val float = 17.6 select CEILING(@val / @stepsize) * @stepsize -- Re
提前感谢您可以将值除以步长,四舍五入,然后乘以步长。大多数SQL方言都有算术函数
declare @stepsize float = 20.0
declare @val float = 17.6
select CEILING(@val / @stepsize) * @stepsize -- Result 20.0
set @val = 31.2
select CEILING(@val / @stepsize) * @stepsize -- Result 40.0
从你的问题来看,不清楚6.0应该用20.0的步长“四舍五入”到什么。它应该舍入到零吗?应该是,在更新中在作业右侧进行。差不多。第二步应该使用上限函数,而不是舍入函数。是的,天花板向上取整是正确的,地板向下取整是正确的,或者加上。5和四舍五入。这不是你最初的问题所说的。