当我尝试使用MySql Workbench导入向导导入以下数据时,它将带有美元符号的列读取为文本。手动将数据类型从text更改为double不起作用,因为它无法上载任何数据。
| 日期|事务标识|客户标识|积|产品代码|产品颜色|产品_价格|购买_大小|采购价格|岁入|
| - -|- -|- -|- -|- -|- -|- -|- -|- -|- -|
| 2020年8月29日零时|小行星9900|小行星9610|扇风机|型号83503|黄铜|十三块九毛九|2个|二十七点九八|二十七块九毛八|
| 2020年5月1日零时|小行星12315|小行星2463|扇风机|型号83503|黄铜|十三块九毛九|2个|二十七点九八|二十七块九毛八|
| 2020年12月12日零时|小行星9890|小行星7787|扇风机|型号83503|白色|十三块九毛九|一个|十三点九九分|十三块九毛九|
| 2020年2月16日零时|小行星46915|小行星9383|扇风机|型号83503|黑色的|十三块九毛九|一个|十三点九九分|十三块九毛九|
| 2020年12月28日零时|小行星44700|小行星8940|扇风机|型号83503|黄铜|十三块九毛九|2个|二十七点九八|二十七块九毛八|
| 2020年12月28日零时|小行星44700|小行星8940|一种灯具|SKU 95363型号|黄铜|四十五块九毛九|五个|一百六万零九六五|二百二十九块九毛五|
| 2020年10月11日零时|小行星12560|小行星2512|一种床|型号74796|褐色的|七百九十九块九毛九|一个|七百九十九点九九|七百九十九块九毛九|
我尝试手动将数据类型从text更改为double,因为当我将日期字段从text更改为datetime时,导入向导没有问题。当我尝试对product_price和revenue列执行相同操作时,导入向导无法加载数据。
我还尝试将product_price和revenue转换为浮点数或小数。当我将purchase_price导入为文本时,我可以使用cast函数对值进行很好的排序,但当我尝试将其用于包含美元符号的字段时,它只将所有值显示为0。
我还尝试使用下面的脚本来遵循我在另一篇文章中看到的提示,但是在创建表时没有创建行
create table t1(amount double);
load data local infile "Downloads\Lauren-s-Furniture-Store-Transaction-Table.csv" into table t1 (@m)
set amount=replace(replace(@m,'$',''),',','');
更改Excel中的格式以删除美元符号解决了这个问题,但我知道SQL在处理大型数据集方面比Excel更好,所以我希望找到一个不使用Excel的解决方案(如果有)。
1条答案
按热度按时间fhity93d1#
对于简单地将 specific 货币符号(例如
$
)添加到具有2个小数位的数字:这也将放入“千位分隔符”(例如,
,
)检查国际化的“locale”(
$
和,
的)。或者检查FORMAT
的第三个参数。