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

server/2025/3/1 22:23:52/

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/server/171647.html

相关文章

vue3.2 + vxe-table4.x 实现多层级结构的 合并、 展开、收起 功能

<template><div style"padding: 20px"><vxe-table border :data"list" :height"800" :span-method"rowspanMethod"><vxe-column title"一级类目" field"category1"><template #defaul…

2.部署kafka:9092

官方文档&#xff1a;http://kafka.apache.org/documentation.html (虽然kafka中集成了zookeeper,但还是建议使用独立的zk集群) Kafka3台集群搭建环境&#xff1a; 操作系统: centos7 防火墙&#xff1a;全关 3台zookeeper集群内的机器&#xff0c;1台logstash 软件版本: …

Android 8.0 (API 26) 对广播机制做了哪些变化

大部分隐式广播无法通过静态注册接收&#xff0c;除了以下白名单广播&#xff1a; ACTION_BOOT_COMPLETED ACTION_TIMEZONE_CHANGED ACTION_LOCALE_CHANGED ACTION_MY_PACKAGE_REPLACED ACTION_PACKAGE_ADDED ACTION_PACKAGE_REMOVED 需要以动态注册方案替换&#xff1a; cl…

【SpringBoot3】Spring Boot 3.0 集成 Mybatis Plus

文章目录 一、什么是 Mybatis Plus 特性 二、Spring Boot 3.0 集成 Mybatis Plus三、Mybatis Plus 查询示例 1、普通查询2、分页查询 参考 一、什么是 Mybatis Plus MyBatis-Plus&#xff08;简称 MP&#xff09;是一个 MyBatis 的增强工具&#xff0c;在 MyBatis 的基础上只…

docker通用技术介绍

docker通用技术介绍 1.docker介绍 1.1 基本概念 docker是一个开源的容器化平台&#xff0c;用于快速构建、打包、部署和运行应用程序。它通过容器化技术将应用及其依赖环境&#xff08;如代码、库、系统工具等&#xff09;打包成一个标准化、轻量级的独立单元&#xff0c;实…

使用vscode导出Markdown的PDF无法显示数学公式的问题

我的硬件环境是M2的MacBook air&#xff0c;在vscode中使用了Markdown PDF来导出md文件对应的PDF。但不管导出html还是PDF文件&#xff0c;数学公式都是显示的源代码。 我看了许多教程&#xff0c;给的是这个方法&#xff1a;在md文件对应的html文件中加上以下代码&#xff1a…

非关系型数据库和关系型数据库的区别

非关系型数据库&#xff08;NoSQL&#xff09;和关系型数据库&#xff08;SQL&#xff09;的主要区别体现在以下几个方面&#xff1a; 数据模型&#xff1a; 关系型数据库&#xff08;SQL&#xff09;&#xff1a;数据以表格形式存储&#xff0c;数据行和列组成&#xff0c;每个…

多线程3:MFC中用户界面线程的相关操作

文章目录 前言一、工作线程与界面线程的区别1.在子线程中创建模态对话框2.在子线程中创建非模态对话框二、界面线程1.界面线程的创建总结前言 多线程3:MFC中用户界面线程的相关操作。 一、工作线程与界面线程的区别 工作线程与界面线程主要是针对MFC中的线程来说的。默认情况…