【MySQL】CAST()在MySQL中的用法以及其他常用的数据类型转换函数

1. cast()

CAST() 在 MySQL 中用于将一个表达式的类型转换为另一个类型。这在处理不同类型的数据时非常有用,比如将字符串转换为数字,或者将浮点数转换为整数等。

1.1 CAST() 函数的基本语法

CAST() 函数的基本语法如下:

sql 复制代码
CAST(expression AS type)
  • expression:要转换的原始表达式。
  • type:目标类型,可以是 BINARY、CHAR、DATE、SIGNED、UNSIGNED、FLOAT、DOUBLE、DECIMAL 等。

1.2 常用类型和格式:

  • BINARY:二进制格式。
  • CHAR:字符串格式。
  • DATE:日期格式。
  • TIME:时间格式。
  • DATETIME:日期时间格式。
  • SIGNED:有符号整数。
  • UNSIGNED:无符号整数。
  • FLOAT:浮点数。
  • DOUBLE:双精度浮点数。
  • DECIMAL:小数。

1.3 示例

  1. 将字符串转换为整数

    sql 复制代码
    SELECT CAST('123' AS SIGNED) AS integer_column;

    结果将是:

    复制代码
    integer_column: 123
  2. 将整数转换为字符串

    sql 复制代码
    SELECT CAST(123 AS CHAR) AS string_column;

    结果将是:

    复制代码
    string_column: '123'
  3. 将浮点数转换为整数

    sql 复制代码
    SELECT CAST(123.456 AS SIGNED) AS integer_column;

    结果将是:

    复制代码
    integer_column: 123
  4. 将字符串转换为日期

    sql 复制代码
    SELECT CAST('2024-05-29' AS DATE) AS date_column;

    结果将是:

    复制代码
    date_column: 2024-05-29
  5. 将日期转换为字符串

    sql 复制代码
    SELECT CAST('2024-05-29' AS CHAR) AS string_column;

    结果将是:

    复制代码
    string_column: '2024-05-29'
  6. 将浮点数转换为小数

    sql 复制代码
    SELECT CAST(123.456 AS DECIMAL(10, 2)) AS decimal_column;

    结果将是:

    复制代码
    decimal_column: 123.46

    这里的 DECIMAL(10, 2) 指定了小数点前的位数为 10,小数点后的位数为 2。

  7. 将二进制字符串转换为整数

    sql 复制代码
    SELECT CAST(BINARY '11001' AS UNSIGNED) AS integer_column;

    结果将是:

    复制代码
    integer_column: 25

CAST() 函数在数据处理和转换中非常有用,尤其是在数据导入和报告生成时,可以确保数据类型的正确性和一致性。

2. 其他常用的数据类型转换函数

在 MySQL 中,除了 CAST() 函数,还有几个其他函数也常用于数据类型转换:

  1. CONVERT(): 与 CAST() 类似,但语法略有不同,并且可以用于转换为不同的数据类型。

    sql 复制代码
    CONVERT(expression, type)

    或者

    sql 复制代码
    CONVERT(type, expression)

    CONVERT() 可以用于将字符串转换为日期时间,或者在转换时指定不同的字符集。

  2. BIN(): 将整数转换为二进制字符串。

    sql 复制代码
    BIN(number)
  3. HEX(): 将整数转换为十六进制字符串。

    sql 复制代码
    HEX(string_or_number)
  4. OCT(): 将整数转换为八进制字符串。

    sql 复制代码
    OCT(number)
  5. ELT(): 根据索引值返回字符串数组中的一个值,常用于条件转换。

    sql 复制代码
    ELT(index, str1, str2, ...)
  6. FIELD(): 与 ELT() 类似,但可以处理多个参数,返回第一个匹配值的字符串。

    sql 复制代码
    FIELD(str, str1, str2, ...)
  7. INET_ATON(): 将点分十进制的 IP 地址转换为无符号整数。

    sql 复制代码
    INET_ATON(string)
  8. INET_NTOA(): 将无符号整数转换为点分十进制的 IP 地址。

    sql 复制代码
    INET_NTOA(inet_address)
  9. RAND(): 返回一个随机浮点数。

    sql 复制代码
    RAND([number])
  10. SIGN(): 返回参数的符号,-1 表示负数,0 表示零,1 表示正数。

    sql 复制代码
    SIGN(number)
  11. ASCII(): 返回字符串的第一个字符的 ASCII 值。

    sql 复制代码
    ASCII(string)
  12. CHAR_LENGTH()LENGTH(): 返回字符串的长度。

    sql 复制代码
    CHAR_LENGTH(string)
  13. CHARACTER_LENGTH(): 与 CHAR_LENGTH() 类似,返回字符串的长度。

    sql 复制代码
    CHARACTER_LENGTH(string)
  14. LOWER(): 将字符串转换为小写。

    sql 复制代码
    LOWER(string)
  15. UPPER(): 将字符串转换为大写。

    sql 复制代码
    UPPER(string)
  16. LTRIM(): 去除字符串左侧的空格。

    sql 复制代码
    LTRIM(string)
  17. RTRIM(): 去除字符串右侧的空格。

    sql 复制代码
    RTLRIM(string)
  18. TRIM(): 去除字符串两侧的空格。

    sql 复制代码
    TRIM([str,] string)
  19. DATE_FORMAT(): 将日期时间格式化为字符串。

    sql 复制代码
    DATE_FORMAT(date, format)
  20. TIME_FORMAT(): 将时间格式化为字符串。

    sql 复制代码
    TIME_FORMAT(time, format)

这些函数可以在不同的场景下使用,以实现数据类型的转换和处理。

相关推荐
不如语冰1 分钟前
AI大模型入门-Python进阶-上下文管理与with语句
开发语言·数据结构·数据库·人工智能·pytorch·redis·python
提笔了无痕1 小时前
MySQL SQL 从 EXPLAIN 到索引优化,搞懂 SQL 为什么慢
android·sql·mysql
l1t2 小时前
DeepSeek总结的DuckLake 架构深度剖析-2
数据库·架构
YOU OU2 小时前
Redis事务
数据库·redis·缓存
辰同学ovo2 小时前
从一条 SQL 到三个原则:MySQL 心智模型
sql·mysql·adb
数智化管理手记3 小时前
财务大数据怎么管住资金风险?财务大数据和财务数智化到底怎么结合?
大数据·网络·数据库·人工智能·数据挖掘
晓子文集3 小时前
Tushare接口文档:指数成分和权重(index_weight)
大数据·数据库·python·金融·量化投资
吴声子夜歌3 小时前
MongoDB 4.2——入门指南
数据库·mongodb
吴声子夜歌3 小时前
MongoDB 4.x——高可靠
数据库·mongodb
light blue bird3 小时前
组轴式执行引擎 ✅ 多线程调度组装组件
数据库·信息可视化·oracle·桌面端winform·多节点端·gdi图表绘制开发