dongqiulei1987 2009-07-13 08:26
浏览 28
已采纳

如何在MySQL中存储欧洲货币?

On a new project I work on I have data in CSV format to import into a mysql table. One of the columns is a price field which stores currency in the european format ie. 345,83. The isssue I have is storing this decimal seperator. In most European currencies the decimal seperator is "," but when I try to insert a decimal number into a field (ex. 345,83), I get the following error: "Data truncated for column 'column_name' at row 'row #'". If I use '.' instead of ',' it works fine. Could you please help me with, how to store this format in mysql?

  • 写回答

7条回答 默认 最新

  • donglu1472 2009-07-13 08:40
    关注

    you can store it as a regular decimal field in the database, and format the number european style when you display it

    edit: just added an example of how it might be achieved

    $european_numbers = array('123.345,78', '123 456,78', ',78');
    
    foreach($european_numbers as $number) {
    
        echo "$number was converted to ".convert_european_to_decimal($number)."
    ";
        // save in database now
    }
    
    function convert_european_to_decimal($number) {
        // i am sure there are better was of doing this, but this is nice and simple example
        $number = str_replace('.', '', $number); // remove fullstop
        $number = str_replace(' ', '', $number); // remove spaces
        $number = str_replace(',', '.', $number); // change comma to fullstop
    
        return $number;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(6条)

报告相同问题?

悬赏问题

  • ¥15 想问一下树莓派接上显示屏后出现如图所示画面,是什么问题导致的
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line
  • ¥500 火焰左右视图、视差(基于双目相机)
  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号