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

ops/2024/10/19 9:32:56/

1. cast()

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

1.1 CAST() 函数的基本语法

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

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. 将字符串转换为整数

    SELECT CAST('123' AS SIGNED) AS integer_column;
    

    结果将是:

    integer_column: 123
    
  2. 将整数转换为字符串

    SELECT CAST(123 AS CHAR) AS string_column;
    

    结果将是:

    string_column: '123'
    
  3. 将浮点数转换为整数

    SELECT CAST(123.456 AS SIGNED) AS integer_column;
    

    结果将是:

    integer_column: 123
    
  4. 将字符串转换为日期

    SELECT CAST('2024-05-29' AS DATE) AS date_column;
    

    结果将是:

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

    SELECT CAST('2024-05-29' AS CHAR) AS string_column;
    

    结果将是:

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

    SELECT CAST(123.456 AS DECIMAL(10, 2)) AS decimal_column;
    

    结果将是:

    decimal_column: 123.46
    

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

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

    SELECT CAST(BINARY '11001' AS UNSIGNED) AS integer_column;
    

    结果将是:

    integer_column: 25
    

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

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

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

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

    CONVERT(expression, type)
    

    或者

    CONVERT(type, expression)
    

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

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

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

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

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

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

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

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

    INET_NTOA(inet_address)
    
  9. RAND(): 返回一个随机浮点数。

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

    SIGN(number)
    
  11. ASCII(): 返回字符串的第一个字符的 ASCII 值。

    ASCII(string)
    
  12. CHAR_LENGTH()LENGTH(): 返回字符串的长度。

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

    CHARACTER_LENGTH(string)
    
  14. LOWER(): 将字符串转换为小写。

    LOWER(string)
    
  15. UPPER(): 将字符串转换为大写。

    UPPER(string)
    
  16. LTRIM(): 去除字符串左侧的空格。

    LTRIM(string)
    
  17. RTRIM(): 去除字符串右侧的空格。

    RTLRIM(string)
    
  18. TRIM(): 去除字符串两侧的空格。

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

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

    TIME_FORMAT(time, format)
    

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


http://www.ppmy.cn/ops/118699.html

相关文章

【C++】AVL树

一、AVL树的概念 二叉搜索树虽可以缩短查找的效率,但如果数据有序或接近有序二叉搜索树将退化为单支树,查 找元素相当于在顺序表中搜索元素,效率低下。从原来的时间复杂度O(logn)转变为O(n) 因此,两位俄罗斯的数学家G.M.Adelson-…

2024.9.26C++作业

1. 什么是虚函数,什么是纯虚函数? 1.虚函数在基类中声明,使用virtual关键字修饰成员函数,并且允许在派生类中重写。 2.在运行时,允许基类指针或者引用调用这个函数时,根据实际对象类型调用派生类&#xff…

Ubuntu 镜像替换为阿里云镜像:简化你的下载体验

Ubuntu,作为一款广受欢迎的Linux发行版,以其稳定性和易用性著称。但你是否曾因为下载速度慢而感到沮丧?现在,你可以通过将Ubuntu的默认下载源替换为阿里云镜像来解决这个问题。本文将指导你如何完成这一过程。 为什么选择阿里云镜…

计算机毕业设计 基于 Hadoop平台的岗位推荐系统 SpringBoot+Vue 前后端分离 附源码 讲解 文档

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点…

ENV | WSL迁移Linux系统到非系统盘(完整实操版)

1. 操作步骤 1.1 确认要导出的Linux系统是否存在&#xff08;可跳过&#xff09; # 终端命令 # 查看通过WSL安装的Linux系统列表 wsl -l1.2 导出Linux系统为tar包 # 终端命令 # 格式&#xff08;过&#xff09; wsl --export <Distribution Name> <File Name> #…

NLP任务之预测最后一个词

目录 1.加载预训练模型 2 从本地加载数据集 3.数据集处理 4.下游任务模型 5.测试代码 6.训练代码 7.保存训练好的模型 8. 加载 保存的模型 1.加载预训练模型 #加载预训练模型 from transformers import AutoTokenizer#预训练模型&#xff1a;distilgpt2 #use_fast…

【有啥问啥】具身智能(Embodied AI):人工智能的新前沿

具身智能&#xff08;Embodied AI&#xff09;&#xff1a;人工智能的新前沿 引言 在人工智能&#xff08;AI&#xff09;的进程中&#xff0c;具身智能&#xff08;Embodied AI&#xff09;正逐渐成为研究与应用的焦点。具身智能不仅关注于机器的计算能力&#xff0c;更强调…

安卓app开发系列之-性能优化

✨ 关于我 ✨ &#x1f468;‍&#x1f4bb; Hi there! 我是 [Jamson]&#xff0c;一名热爱编程与技术的狂热者&#xff0c;致力于前后端的全栈独立软件系统开发。通过不断学习和实践&#xff0c;我希望将知识分享给更多的朋友们&#xff0c;和大家一起成长。 &#x1f4a1; &…