Php SQL查询->;将分数(sting)转换为小数

Php SQL查询->;将分数(sting)转换为小数,php,mysql,Php,Mysql,在我的数据库中,赔率存储为分数(varchar),但我需要将它们转换为小数,以便稍后使用以下语句 select Date, Horse, Racetime, min(odds) from horsesrp where odds < 2.5 and odds != 0 and Date >= "2014-12-01" AND Date <= "2014-12-30" group by racetime 从horsesrp中选择日期、马、比赛时间、分钟(赔率),其中赔率=“20

在我的数据库中,
赔率
存储为分数(varchar),但我需要将它们转换为小数,以便稍后使用以下语句

select Date, Horse, Racetime, min(odds) from horsesrp where odds < 2.5 and odds != 0 and Date >= "2014-12-01" AND Date <= "2014-12-30"  group by racetime
从horsesrp中选择日期、马、比赛时间、分钟(赔率),其中赔率<2.5,赔率!=0和日期>=“2014-12-01”和日期
十进制[(M[,D])]

将值转换为十进制数据类型。可选参数M和D 指定精度(M指定总位数)和 刻度(D指定小数点后的位数) 十进制值。默认精度为数字后面的两位数 小数点

尝试一些类似的方法:

select Date, Horse, Racetime, min(CAST(REPLACE(odds, '/', '.') AS DECIMAL(10,6))) from horsesrp where CAST(REPLACE(odds, '/', '.') AS DECIMAL(10,6)) < 2.5 and odds != '0' and Date >= "2014-12-01" AND Date <= "2014-12-30"  group by racetime
从horsesrp中选择日期、马、比赛时间、分钟(将投法(赔率“/”,“.”)替换为十进制(10,6)),其中投法(将投法(赔率“/”,“.”)替换为十进制(10,6))<2.5和赔率!='0'和日期>=“2014-12-01”和日期您可以使用来分割分数,然后简单地像这样分割:

SELECT CONVERT(SUBSTRING_INDEX (odds,'/',1),DECIMAL(10,2))/CONVERT(SUBSTRING_INDEX(odds,'/',-1),DECIMAL(10,2)) FROM horserp;

如果
赔率
包含一个类似
'3/2'
的字符串,我不确定这是否会产生预期的结果。但是,当它应该是
1.5
3
除以
2
)的时候,替换将
'3/2'
转换为
3.2
)哦,我明白了,我弄错了,以为他刚才用了/作为小数点分隔符:-(