1. cast()
CAST()
在 MySQL 中用于将一个表达式的类型转换为另一个类型。这在处理不同类型的数据时非常有用,比如将字符串转换为数字,或者将浮点数转换为整数等。
1.1 CAST() 函数的基本语法
CAST()
函数的基本语法如下:
CAST(expression AStype)
expression
:要转换的原始表达式。type
:目标类型,可以是 BINARY、CHAR、DATE、SIGNED、UNSIGNED、FLOAT、DOUBLE、DECIMAL 等。
1.2 常用类型和格式:
BINARY
:二进制格式。CHAR
:字符串格式。DATE
:日期格式。TIME
:时间格式。DATETIME
:日期时间格式。SIGNED
:有符号整数。UNSIGNED
:无符号整数。FLOAT
:浮点数。DOUBLE
:双精度浮点数。DECIMAL
:小数。
1.3 示例
- 将字符串转换为整数:
SELECT CAST('123'AS SIGNED)AS integer_column;
结果将是:integer_column: 123
- 将整数转换为字符串:
SELECT CAST(123ASCHAR)AS string_column;
结果将是:string_column: '123'
- 将浮点数转换为整数:
SELECT CAST(123.456AS SIGNED)AS integer_column;
结果将是:integer_column: 123
- 将字符串转换为日期:
SELECT CAST('2024-05-29'ASDATE)AS date_column;
结果将是:date_column: 2024-05-29
- 将日期转换为字符串:
SELECT CAST('2024-05-29'ASCHAR)AS string_column;
结果将是:string_column: '2024-05-29'
- 将浮点数转换为小数:
SELECT CAST(123.456ASDECIMAL(10,2))AS decimal_column;
结果将是:decimal_column: 123.46
这里的DECIMAL(10, 2)
指定了小数点前的位数为 10,小数点后的位数为 2。 - 将二进制字符串转换为整数:
SELECT CAST(BINARY'11001'ASUNSIGNED)AS integer_column;
结果将是:integer_column: 25
CAST()
函数在数据处理和转换中非常有用,尤其是在数据导入和报告生成时,可以确保数据类型的正确性和一致性。
2. 其他常用的数据类型转换函数
在 MySQL 中,除了
CAST()
函数,还有几个其他函数也常用于数据类型转换:
CONVERT()
: 与CAST()
类似,但语法略有不同,并且可以用于转换为不同的数据类型。CONVERT(expression,type)
或者CONVERT(type, expression)``````CONVERT()
可以用于将字符串转换为日期时间,或者在转换时指定不同的字符集。BIN()
: 将整数转换为二进制字符串。BIN(number)
HEX()
: 将整数转换为十六进制字符串。HEX(string_or_number)
OCT()
: 将整数转换为八进制字符串。OCT(number)
ELT()
: 根据索引值返回字符串数组中的一个值,常用于条件转换。ELT(index, str1, str2,...)
FIELD()
: 与ELT()
类似,但可以处理多个参数,返回第一个匹配值的字符串。FIELD(str, str1, str2,...)
INET_ATON()
: 将点分十进制的 IP 地址转换为无符号整数。INET_ATON(string)
INET_NTOA()
: 将无符号整数转换为点分十进制的 IP 地址。INET_NTOA(inet_address)
RAND()
: 返回一个随机浮点数。RAND([number])
SIGN()
: 返回参数的符号,-1 表示负数,0 表示零,1 表示正数。SIGN(number)
ASCII()
: 返回字符串的第一个字符的 ASCII 值。ASCII(string)
CHAR_LENGTH()
或LENGTH()
: 返回字符串的长度。CHAR_LENGTH(string)
CHARACTER_LENGTH()
: 与CHAR_LENGTH()
类似,返回字符串的长度。CHARACTER_LENGTH(string)
LOWER()
: 将字符串转换为小写。LOWER(string)
UPPER()
: 将字符串转换为大写。UPPER(string)
LTRIM()
: 去除字符串左侧的空格。LTRIM(string)
RTRIM()
: 去除字符串右侧的空格。RTLRIM(string)
TRIM()
: 去除字符串两侧的空格。TRIM([str,] string)
DATE_FORMAT()
: 将日期时间格式化为字符串。DATE_FORMAT(date, format)
TIME_FORMAT()
: 将时间格式化为字符串。TIME_FORMAT(time, format)
这些函数可以在不同的场景下使用,以实现数据类型的转换和处理。
版权归原作者 安静的_显眼包O_o 所有, 如有侵权,请联系我们删除。