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

时间:2009-06-18 03:31:22

标签: mysql formatting

有没有一种特别简单的方法可以使用MySQL将“21.08”这样的数字转换为“Twenty One和08/100”?

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

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

1 个答案:

答案 0 :(得分:1)

很好奇为什么你在数据库层而不是在表示层上这样做...

如果你真的,真的想用MySQL做这个,你可以创建两个查询表,例如存储英语表示然后对每个数字执行查询的“一个”和“十个”。通过将数字转换为字符串并从小数点向后迭代,然后在相应的表中执行查找来提取数字。也许第三个表可用于提供“百”,“千”等字符串

这是我能看到的最直接的解决方案,但写作会很痛苦,而且在国际化方面可能会非常脆弱。此外,它使用与您的数据无关的查找表来混乱架构。

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