You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL中添加存储0-1且保留两位小数的value列,需用什么数据类型?

添加指定规则的value列解决方案

根据不同数据库类型,以下是具体实现方式,确保value列存储0到1之间、保留两位小数的精确值:

MySQL/MariaDB

使用DECIMAL(3,2)精确小数类型,并添加范围约束:

ALTER TABLE your_table_name
ADD COLUMN value DECIMAL(3,2) CHECK (value BETWEEN 0 AND 1);

DECIMAL(3,2)能精准存储两位小数,CHECK约束确保值落在0.00到1.00之间(包含边界值)。

PostgreSQL

使用NUMERIC(3,2)类型配合范围约束:

ALTER TABLE your_table_name
ADD COLUMN value NUMERIC(3,2) CHECK (value >= 0 AND value <= 1);

NUMERIC和DECIMAL在PostgreSQL中等价,可保证小数精度,约束限制值的合法范围。

SQL Server

使用DECIMAL(3,2)并命名约束便于维护:

ALTER TABLE your_table_name
ADD COLUMN value DECIMAL(3,2) CONSTRAINT chk_value_range CHECK (value BETWEEN 0 AND 1);

命名约束方便后续修改或删除操作,同时确保值的范围符合要求。

注意事项

  • 优先选择精确小数类型(DECIMAL/NUMERIC)而非浮点类型(FLOAT/REAL),避免浮点运算带来的精度丢失问题。
  • 如果需要在插入/更新时自动格式化两位小数,可在应用层处理,或配合数据库触发器实现。

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 16:06:00