我们在进行数据库查询的时候, 传入的某些数值会与数据库字段类型不一致, 这时我们就需要进行类型转换
比如有表student:
name (VARCHAR) | sex (VARCHAR) | id (VARCHAR) |
---|---|---|
张三 | 男 | 1001 |
李四 | 男 | 1002 |
小红 | 女 | 1003 |
我想查询学号(id)为20的学生的名字:
SELECT name FROM student WHERE id = 1001;
可能报错 No operator matches the given name and argument type(s). You might need to add explicit type casts.
很明显, id 列是 VARCHAR 类型, 但是查询语句的类型为 数字类型, 此时我们就要进行数据格式转换:
以下有几种方式:
CAST( 字段 AS 你要转换为的数据类型 )
SELECT name FROM student WHERE id = cast(1003 as VARCHAR);
字段 :: 你要转换为的数据类型
SELECT name FROM student WHERE id = 1002 :: VARCHAR;