You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

数据表字段更新:保留整数部分与小数点后4位

实现字段保留小数点前全量、后4位的更新方案

咱先明确两种常见需求方向:

  • 直接截断小数点后第4位之后的数字(比如123.456789 → 123.4567)
  • 对小数点后第4位进行四舍五入(比如123.456789 → 123.4568)

下面分主流数据库给你具体的更新语句:

MySQL/MariaDB

截断场景

TRUNCATE()函数直接截断,语法简单粗暴:

UPDATE x 
SET your_field = TRUNCATE(your_field, 4);

四舍五入场景

ROUND()函数实现四舍五入:

UPDATE x 
SET your_field = ROUND(your_field, 4);

PostgreSQL

PostgreSQL的函数和MySQL逻辑一致,直接套用就行:

截断场景

UPDATE x 
SET your_field = TRUNC(your_field, 4);

四舍五入场景

UPDATE x 
SET your_field = ROUND(your_field, 4);

SQL Server

SQL Server的ROUND()函数多了个参数控制截断/四舍五入,第三个参数传1就是截断:

截断场景

UPDATE x 
SET your_field = ROUND(your_field, 4, 1);

四舍五入场景

默认不传第三个参数就是四舍五入:

UPDATE x 
SET your_field = ROUND(your_field, 4);

特殊情况:字段是字符串类型

如果你的字段是VARCHAR这类字符串类型,得先转成数值类型再处理,最后转回字符串(以MySQL为例):

UPDATE x 
SET your_field = CAST(TRUNCATE(CAST(your_field AS DECIMAL), 4) AS CHAR);

⚠️ 小提醒:更新数据前最好先跑个查询验证结果,比如SELECT TRUNCATE(your_field,4) AS x_trim FROM x LIMIT 10;,确认符合预期再执行UPDATE,避免误操作哦!

内容的提问来源于stack exchange,提问作者MoxGoat

火山引擎 最新活动