我有个csv文件,其中有这样的数据28,979.88,导入到数据库后,变成28.00,请问这是怎么回事情?
LOAD DATA LOCAL INFILE 'myfile' INTO TABLE mytable FIELDS TERMINATED BY ';' LINES TERMINATED BY '\n' IGNORE 1 LINES;

解决方案 »

  1.   

    表的定义是什么? 贴出你的show create table mytable 
      

  2.   

    create table report(symbol char(8),industry  char(40),sector char(40),fiscal_year_end_date  char(10),last_reported_quarter char(8),next_eps_date char(10),shareoutstanding float(10,2),current_quarter_eps float(6,2),             current_year_eps float(6,2),estimated_long_term_eps_growth_rate char(10),next_eps_report_date char(10),pe_current_fy_estimate float(6,2),pe_trailing_12_months float(6,2),peg_ratio float(6,2),                 eps_growth_previous_year float(6,2),eps_growth_previous_quarter float(6,2))
    shareoutstanding float(10,2)  ,csv的数据是28,979.88,导入数据库变成了28.00
    peg_ratio float(6,2),csv的数据是125%,导入数据库变成了125
      

  3.   

    csv的数据是28,979.88,你是如何让别人来分辨 28,979.88, 这是两个数字还是一个数字的呢? CSV 是以逗号分隔的。
      

  4.   

    我的导入语句是这样的:
    LOAD DATA LOCAL INFILE 'myfile' INTO TABLE mytable FIELDS TERMINATED BY ';' LINES TERMINATED BY '\n' IGNORE 1 LINES;
    明明指定了,用;来作为分隔符号。
      

  5.   

    另外还有:
    1.mysql的日期格式是,DATE,日期。支持的范围为’1000-01-01′到’9999-12-31′。MySQL以’YYYY-MM-DD’格式显示DATE值 
    我的csv是10/14/2010,06/30/10,这样的格式,如何处理?
    是否有两种解决方式?
    方式1,设定mysql的日期格式,让它可以识别存储10/14/2010,06/30/10这样的格式。
    方式2,导入前,修改csv文件的日期,让它成为YYYY-MM-DD
    个人感觉,如果方式1可行,更简单。
    2.如果有这样的数值125%,怎么办?时候也有类同于上面的两种方式解决?
      

  6.   

    ....csv文件里面字段分隔符是什么 你就要在 FIELDS TERMINATED BY  指定什么 !而不是你想要指定什么就是什么!! 因为你是导入不是导出 明白否?首先把你要导入的文件规范化 直到可以导入为止 这根你的语句有关系。。
    比如有转义之类的字符就需要加\等等 细节问题很多 参看下手册
    我的csv是10/14/2010,06/30/10,这样的格式,如何处理?
    ==》
    应该可以自己识别的..如果有这样的数值125%,怎么办?时候也有类同于上面的两种方式解决
    ==》
    把你的表对应字段改成字符型