mysql convert函数 解决读取double为科学计数法问题

convert顾名思义就是转化, cast差不多 

MySQL CONVERT() 函数 | 参考手册

为什么需要这个函数? mysql是弱类型的 where stringcol=1 and intcol='1' 都行 会自动转化,那我为什么还要呢?

mysql有个类型是double ,基本没人用,但是就是有人用。。。用了就有问题。

例如sql  select NUMBER_ATTRIBUTE_4 from dwaps.aps_cm_config_data_ce 

数据库查出数据

mysql convert函数 解决读取double为科学计数法问题_第1张图片

通过java代码查询

mysql convert函数 解决读取double为科学计数法问题_第2张图片

看到没,出现了科学计数法, 这怎么可以呢?怎么解决呢?

很简单 java读取double时会科学计数法,那么我不读取double 读取varchar就好了

select convert(NUMBER_ATTRIBUTE_4,char) from dwaps.aps_cm_config_data_ce 
mysql convert函数 解决读取double为科学计数法问题_第3张图片

问题解决了吗?看似解决了,其实没解决,过了几天发现另外一个问题

 targetId=506 batchid=906134083510206460

java读取

mysql convert函数 解决读取double为科学计数法问题_第4张图片

但是结果  targetId=506.0   batchid=9.061340835102065e17

转化为char targetId=506 batchid=9.061340835102065e17 还是错的

只能convert(BATCH_ID,SIGNED) 

只能转化为int, 所以double类型慎用

你可能感兴趣的:(学习,mysql,数据库)