2009-06-18 206 views
1

是否有一種使用MySQL將諸如「21.08」之類的數字轉換爲「Twenty One和08/100」的特別簡單的方法?MySQL - 將數字轉換爲英文表示

我知道在Oracle中有一個技巧可以用來處理Julian日期。它可以在一行左右完成工作,但它似乎不能在MySQL中工作(因爲它不支持Julian日期)。

在「真正」的編程語言中,這不是一個特別難的問題,但是把它寫成存儲過程或函數的想法是可怕的。

+1

只是好奇 - 爲什麼?我很肯定答案是「不」,或者至少「你不想用MySQL來做到這一點,如果是這樣,解決方案必須是可怕的! – jlarson 2009-06-18 03:36:00

+0

你看到這篇文章:http://www.perlmonks。 org /?node_id = 719893 – 2009-06-18 05:38:32

回答

1

好奇,爲什麼你這樣做是在數據庫層,而不是在表示層...

如果你真的想使用MySQL要做到這一點,您可以創建名爲例如兩個查找表「ones」和「ten」存儲英文表示,然後對每個數字執行查詢。通過將數字轉換爲字符串並從小數點開始迭代,然後在相應的表中執行查找來提取數字。也許第三張桌子可以用來提供像「百」,「千」等字符串。

這是我可以看到的最直接的解決方案,但寫入時會很痛苦,而且可能相當脆弱國際化。此外,它使用與數據無關的查找表來混淆架構。

也許寫一個User-Defined Function (UDF)會是一個更好的解決方案,但我想它仍然會相當耗時。