在 MySql 中将 VARCHAR 转换为 DECIMAL 值 admin 2023-06-02 14:15:02 技术标签: 【中文标题】在 MySql 中将 VARCHAR 转换为 DECIMAL 值【英文标题】:Converting VARCHAR to DECIMAL values in MySql 【发布时间】:2014-04-12 06:59:06 【问题描述】: 我已将一个包含字符串值(例如吃)和浮动值(例如 0.87)的 CSV 文件导入到我的 phpMyAdmin 数据库中的表中。在我得到所有字符串值并只保留具有十进制值的行之后,我需要将这些值从 VARCHAR 转换为 DECIMAL/FLOAT 以便我可以对此属性执行 MAX()。我该怎么做?每次我尝试通过 phpMyAdmin 中的 GUI 执行此操作时,我的所有值都会自动四舍五入为 0 和 1。请帮帮我! ns.jsZHUOer.CoM【问题讨论】: 【参考方案1】: 无需转换,您可以使用此查询找到最大值select max(cast(stuff as decimal(5,2))) as mySum from test;检查这个SQLfiddle您的演示表:create table test ( name varchar(15), stuff varchar(10));insert into test (name, stuff) values ("one","32.43");insert into test (name, stuff) values ("two","43.33");insert into test (name, stuff) values ("three","23.22");您的问题:对于 SQL Server,您可以使用:ns.jsZHUOer.CoMselect max(cast(stuff as decimal(5,2))) as mySum from test; ns.jsZHUOer.CoM【讨论】:【参考方案2】: 如果您对 mysql 具有管理员权限,我认为您需要尝试在 MySQL 上执行类似的操作。ALTER TABLE 表名修改列名 DECIMAL(M,D)对于 M、D 变量,请阅读 - http://dev.mysql.com/doc/refman/5.0/en/fixed-point-types.htmlns.jsZHUOer.CoM而且 MySQL 应该能够自动将文本转换为数字。只是 MySQL 中的数据类型可能不是小数,这就是为什么你不能存储任何小数。 【讨论】:【参考方案3】: 请注意,如果您从VARCHAR 转换为DECIMAL 并且未指定精度和最大位数(即DECIMAL 而不是DECIMAL(5,2)),MySQL 会自动将您的小数四舍五入为整数值。 【讨论】:【参考方案4】: 希望对大家有所帮助select convert( if( listPrice REGEXP "^[0-9]+$", listPrice, "0" ), DECIMAL(15, 3) ) from MyProduct WHERE 1 【讨论】:以上是关于在 MySql 中将 VARCHAR 转换为 DECIMAL 值的主要内容,如果未能解决你的问题,请参考以下文章 ORA-01219:数据库未打开:仅允许在固定表/视图中查询 新媒体人必备的10个效率工具,神器收藏起来 您可能还会对下面的文章感兴趣: 相关文章 商丘私人空放联系方式_基本资料审核后快速就能放款平台 济宁私人借钱24小时在线,5万以上级别的贷款|无抵押个人借贷|秒下| 湖州空放私借2小时放款—身无分文借贷100%直接放款 宜昌纯私人放款微信电话——马上为您安排信贷服务+当日到账 蚌埠24小时私人放款联系方式随借随到-做生意借贷|应急周转|大额优先| 遵义空放借钱贷款联系电话:走投无路申请放款马上就到账 绵阳专业空放贷款私人联系方式,不看过往|先贷后放|马上拿钱| 德州附近个人放款电话号码多少:不审核+随借随还+当日成功+直接到账