如何转换字符串" 3.82384E + 11"与MySQL的BIGINT?

时间:2018-03-12 17:10:55

标签: mysql type-conversion

我尝试从CSV中保存一些ID值,这些ID值会自动转换为Excel的指数。

382383816413成为3.82384E+11。所以我用:

完全导入我的MySQL数据库
LOAD DATA LOCAL INFILE
  'file.csv'
INTO TABLE my_table
FIELDS TERMINATED BY ';'
ENCLOSED BY '"'
ESCAPED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 LINES
(@`item_id`,
@`colum2`,
@`colum3`)

SET
  item_id = @`item_id`;

我尝试使用类似的演员:

CAST('3.82384E+11' as UNSIGNED)它只给我3

CAST('3.82384E+11' as BIGINT)并且它无法正常工作。

CAST('3.82384E+11' as UNSIGNED BIGINT)并再次给我3

那么,在MySQL中将字符串指数转换为真正的大整数的更好方法是什么?

2 个答案:

答案 0 :(得分:0)

在Excel中将列格式设置为文本而不是数字。请参阅以下链接。

PHPExcel - set cell type before writing a value in it

答案 1 :(得分:0)

我的选择是将带有3.82384E+11的列转换为excel文件中的数字,以便它返回到原始值。然后我导出到CSV并使用SQL查询导入它。