MySQL - 将数字转换为英文表示

标签 mysql formatting

有没有一种特别简单的方法可以使用 MySQL 将“21.08”之类的数字转换为“二十一和 08/100”?

我知道在 Oracle 中有一个可以使用的技巧,它涉及处理 Julian 日期。它会在一行左右完成工作,但它似乎在 MySQL 中不起作用(因为它不支持 Julian 日期)。

这在“真正的”编程语言中并不是一个特别困难的问题,但是将其写成存储过程或函数的想法是可怕的。

最佳答案

很好奇为什么您要在数据库层而不是在表示层执行此操作...

如果您真的非常想用 MySQL 来做这件事,您可以创建两个查找表,例如“ones”和“tens”存储英文表示,然后对每个数字执行查询。通过将数字转换为字符串并从小数点向后迭代来提取数字,然后在适当的表中执行查找。也许可以使用第三个表来提供诸如“Hundred”、“Thousand”等字符串。

这是我能看到的最直接的解决方案,但编写起来会很痛苦,而且在国际化方面可能非常脆弱。此外,它使用与您的数据没有任何关系的查找表使架构困惑。

也许写一个 User-Defined Function (UDF)将是一个更好的解决方案,但我认为它仍然会非常耗时。

关于MySQL - 将数字转换为英文表示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1010646/

相关文章:

.net - 将格式化文本复制到剪贴板,字体除外

php - 如何使用多字段搜索和防止sql注入(inject)

sql - 有没有办法从 SQL 中的日期中减去天数?

mysql - 如何根据查询结果设置变量?

rust - rustfmt的未知配置选项 `group_imports`

c++ - ostream showbase 不显示零值的 "0x"

c# - System.IFormattable.Format(...) 的实现是否应该抛出异常?

mysql - 将表从 latin1 更新为 utf8 是否安全

php - mysqli 从数据库中提取十进制值

string - 为什么不使用 %v 来打印 int 和 string