mysql中如何对varchar类型的字段进行转换成数字并求和sum
sql
SELECT sum(cast(字段名 AS DECIMAL (12,2))) FROM 表名;
值得注意的是,里面有个小坑,其中 Cast(字段名 as 转换的类型 ) 将字段转成对应的类型,类型可以为
CHAR[(N)] 字符型
DATE 日期型
DATETIME 日期和时间型
DECIMAL float型
SIGNED int
TIME 时间型
并不包括numeric类型,我刚开始查询相关博客时,查到的语句为
SELECT sum(cast(字段名 AS numeric(12,2))) FROM 表名;
然后执行该语句报错,将numeric改成DECIMAL 后可以执行并得到正确结果。当然,报错原因也有可能是我理解不对或者用的数据库不一样等其他问题,我用的是mysql8.0以上,这里不是很确定,欢迎有识之士指出我的错误。