一尘不染

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

mysql

在一个新项目中,我正在以CSV格式导入到mysql表中的数据。列之一是价格字段,该字段以欧洲格式(即,欧元)存储货币。345,83。我遇到的问题是存储此十进制分隔符。在大多数欧洲货币中,十进制分隔符为“,”,但是当我尝试在字段中插入十进制数字(例如345,83)时,出现以下错误:“行’row#的列’column_name’的数据被截断了’”。如果我使用“。”
而不是“,”可以正常工作。您能帮我吗,如何在mysql中存储这种格式?


阅读 267

收藏
2020-05-17

共1个答案

一尘不染

您可以将其存储为数据库中的常规十进制字段,并在显示时格式化欧洲风格的数字

编辑:刚刚添加了一个示例,可能如何实现

$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)."\n";
    // 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;
}
2020-05-17