mysql - 在mysql中将科学记数法从Varchar转换为Decimal

标签 mysql string casting decimal

在 mySQL 数据库上,数据集中的所有值都存储为 varchar,显示欧元金额,如下所示:“EUR 2.5E+2”、“EUR 56.95”、“EUR 1E+2”

现在,我想让它再次有用并将其转换为十进制以进一步计算,但不知道该怎么做。

我尝试遵循此问题的建议解决方案: Casting Scientific Notation (from varchar -> numeric) in a view

但是,我未能将解决方案复制为查询、 View 或存储过程,更不用说使其适应我的问题了。

我真的希望有人能帮助我。 提前致谢!

最佳答案

非常感谢 Rick James,您的解决方案非常有效。 但是,我更喜欢将子字符串显式转换为十进制:

CAST(SUBSTRING_INDEX(p.amount, ' ', -1) AS DECIMAL(5,2))

现在我可以对结果进行计算(请参阅 Rick 的答案下面的评论)。

关于mysql - 在mysql中将科学记数法从Varchar转换为Decimal,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42615052/

相关文章:

java - 如何解决 ClassCastException?也许是 JFileChooser 的类型转换错误

c# - 将对象显式转换为 C# 中仅在运行时可用的泛型类型的另一个对象

MySQL 5.6.19 TIMESTAMP 不能接受很多正确的值

php - Mysqli 获取数组不工作

java - index.jsp 中的修改在运行项目时没有出现

java - 使用正则表达式取消驼峰式 Java 字符串

php - 检查字符串是否在 PHP 中全部大写

mysql - 不能在 mySQL 中删除外键

Python - 比较来自txt文件的字符串输入

java - Google 编码挑战未检测到 int