📜  MySQL Convert()函数(1)

📅  最后修改于: 2023-12-03 15:17:45.656000             🧑  作者: Mango

MySQL Convert()函数

MySQL Convert()函数用于将一个表达式转换为特定的数据类型或字符集。

语法
CONVERT(expr,type)
CONVERT(expr USING transcoding_name)

参数说明:

  • expr: 必需,要转换的表达式。
  • type: 可选,要转换的数据类型。
  • transcoding_name: 可选,要转换的字符集名称。

注意:在MySQL中,CONVERT()函数实际上是两个不同的函数,具体取决于参数列表中传递的参数。如果只传递了两个参数,则使用第一种语法,即将表达式转换为指定的数据类型;如果传递了三个参数,则使用第二种语法,即将表达式转换为指定的字符集。

支持的数据类型

CONVERT()函数支持以下数据类型:

  • BINARY[(N)]: 将一个字符串转换为一个二进制字符串,如果没有指定长度,将返回整个字符串的长度。
  • CHAR[(N)]: 将一个表达式转换为一个固定长度的字符串,如果没有指定长度,将返回最长的可能长度,不包括后置空格的任何字节。
  • DATE, DATETIME, TIME: 将一个时间或日期表达式转换为指定的格式。
  • DECIMAL[(M[,D])]: 将一个表达式转换为一个固定精度的十进制数,M 指定最大允许数字的总数,包括小数点前的数字和小数点后的数字,D 指定小数点后的精度。
  • SIGNED [INTEGER], UNSIGNED [INTEGER]: 将一个表达式转换为有符号或无符号的整数,INTEGER 可选,指定转换结果的数据类型。
  • NCHAR[(N)], NVARCHAR[(N)]: 将一个表达式转换为固定长度或可变长度的Unicode字符串,类似于 CHARVARCHAR
  • REAL, DOUBLE PRECISION, FLOAT[(M,D)]: 将一个表达式转换为实数数据类型,M 指定有效数字的总数,D 指定小数点后的位数。
支持的字符集

CONVERT()函数支持以下字符集:

  • BINARY[(N)]: 将一个字符串或二进制字符串转换为二进制字符串。
  • CHAR[(N)]: 将一个字符串转换为指定的字符集。
  • DATE, DATETIME, TIME: 将一个时间或日期表达式按指定字符集转换为字符串。
  • NCHAR[(N)], NVARCHAR[(N)]: 将一个Unicode字符集的字符串转换为另一种Unicode字符集的字符串。
示例
1. 转换为二进制字符串
SELECT CONVERT('Hello World', BINARY);

输出结果:

48656C6C6F20576F726C64
2. 转换为固定长度字符串
SELECT CONVERT('Hello World', CHAR(20));

输出结果:

Hello World          
3. 转换为日期格式
SELECT CONVERT('2022-02-14', DATE);

输出结果:

2022-02-14
4. 将字符串转换为Unicode字符集
SELECT CONVERT('Hello World', NCHAR);

输出结果:

H e l l o   W o r l d
5. 将Unicode字符集的字符串转换为另一种Unicode字符集的字符串
SELECT CONVERT('Hello World', NVARCHAR) USING utf8;

输出结果:

Hello World