CAST
转换字段数据类型
简介
CAST(expression AS type) 显式说明希望得到的数据类型,可用于数值计算、日期比较和输出格式对齐。转换并不等于数据有效:非法文本在不同数据库和 SQL 模式下可能报错、截断或得到特殊值,因此批量转换前应先识别异常数据。
基础语法
SELECT CAST(amount AS DECIMAL(10,2)) AS amount_num FROM orders;
示例
CAST 示例
示例把 amount 转为 DECIMAL(10,2),强调精度和小数位属于结果契约,而不是单纯的显示格式。
示例数据表
表名:
orders| amount |
|---|
| 1200 |
| 900 |
| 1500 |
| 700 |
运行结果
| amount_num |
|---|
| 1200.0 |
| 900.0 |
| 1500.0 |
| 700.0 |
常见问题
无效文本转换成数字会怎样?
结果取决于数据库、版本和 SQL 模式,可能报错、返回特殊值或产生警告;导入前应先识别不合法数据。
金额为什么不应随意转成 FLOAT?
FLOAT 是近似数;金额通常应使用带明确精度和小数位的 DECIMAL,避免累计误差。
WHERE 中对索引字段 CAST 有什么风险?
在字段外包一层函数可能使普通索引无法直接用于查找;能转换常量或统一存储类型时更稳妥。
标签
这篇内容是否清楚?
感谢反馈,我们会把它用于后续内容复核。