注:cast()和CONVERT()函数可用来获取一个类型的值,并产生另一个类型的值

一、int转string

​1、cast​​​() ​​函数​

​select​​​  ​​cast​​​ ​​(111 ​​​ ​​as​​​  ​​char​​​ ​​);​

​2、​​​convert() ​​函数​

select convert(​​111​​​,​​char​​)

3、​​concat​​​() ​​函数​

​select​​​  ​​concat(111,​​​ ​​''​​​ ​​);​

这里给个实际项目中的案例:

项目中将之间的一个表重构,id用雪花id,数据库字段类型为bigint。但是有关该表的外键都没改,还是之前的varchar类型。 

问题:外键关联查询时报错

Data truncation: Truncated incorrect DOUBLE value: 'xxxxxxxxxx'

原因是:mysql把bigint类型转到varchar时,精度丢失了

注意:此时用 ​​concat(111,​​​ ​​''​​​ ​​),将bigint转称varchar也会报错,​​​原因是,用​​concat()函数转是把数字和字符串连在一起​​。

而用 ​​cast​​​ ​​(111 ​​​ ​​as​​​  ​​char​​​ ​​)、​​​convert(​​111​​​,​​char​​​) ​​就不会报错​

二、String转double

1、select cast("111.11" as decimal(10,2));

2、select convert("111.11",decimal(10,2);