在MySql中将VARCHAR转换为DECIMAL值

Dar*_*der 7 mysql sql phpmyadmin typeconverter

我已经将包含字符串值(例如,表示)和浮动值(例如0.87)的CSV文件导入到phpMyAdmin数据库的表中.在我获取所有字符串值并仅保留具有十进制值的行之后,我需要将这些值从VARCHAR转换为DECIMAL/FLOAT,以便我可以对此属性执行MAX().

我该怎么做呢?每次我尝试通过phpMyAdmin中的GUI执行此操作时,我的所有值都会自动舍入为0和1.

请帮我!

Jay*_*tel 7

如果没有转换,您可以使用此查询找到最大值

select max(cast(stuff as decimal(5,2))) as mySum from test;
Run Code Online (Sandbox Code Playgroud)

检查这个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');
Run Code Online (Sandbox Code Playgroud)

您的查询:

对于SQL Server,您可以使用:

select max(cast(stuff as decimal(5,2))) as mySum from test;
Run Code Online (Sandbox Code Playgroud)


Sky*_*Sky 3

我认为如果你有 MySQL 的管理员权限,你需要尝试在你的 MySQL 上做这样的事情。

ALTER TABLE 表名 MODIFY 列名 DECIMAL(M,D)

对于 M,D 变量,请阅读此内容 - http://dev.mysql.com/doc/refman/5.0/en/fixed-point-types.html

MySQL 应该能够自动将文本转换为数字。只是MySQL中的数据类型可能不是小数,这就是为什么你不能存储任何小数。