当前位置: 首页 > news >正文

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

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)

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

相关文章:

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

1. cast() CAST() 在 MySQL 中用于将一个表达式的类型转换为另一个类型。这在处理不同类型的数据时非常有用,比如将字符串转换为数字,或者将浮点数转换为整数等。 1.1 CAST() 函数的基本语法 CAST() 函数的基本语法如下: CAST(expression…...

使用Truffle、Ganache、MetaMask、Vue+Web3完成的一个简单区块链项目

文章目录 概要初始化Truffle项目创建编写合约编译合约配置Ganache修改truffle-config.js文件编写迁移文件部署合约使用Truffle 控制台使用MetaMask和VueWeb3与链交互 概要 使用Truffle、Ganache、MetaMask、VueWeb3完成的一个简单区块链项目。 初始化Truffle项目 安装好truf…...

初出茅庐的小李博客之按键驱动库使用

驱动库介绍 源码地址:https://github.com/jiejieTop/ButtonDrive 使用只需3步,创建按键,按键事件与回调处理函数链接映射,周期检查按键,支持单双击、连按、长按;采用回调处理按键事件(自定义消…...

如何调试Linux内核?

通过创建一个最小的根文件系统,并使用QEMU和GDB进行调试。 1.准备工作环境 确保系统上安装了所有必要的工具和依赖项。 sudo apt-get update //更新一下软件包 sudo apt-get install build-essential git libncurses-dev bison flex libssl-dev qemu-system-x…...

ECharts组件封装教程:Vue3中的实践与探索

在日常的前端开发中,ECharts 作为一款强大且易用的图表库,被广泛应用于数据可视化场景。为了更好地在 Vue3 项目中复用 ECharts 功能,我们可以将其封装成一个组件。本文将带大家一步步实现 ECharts 的 Vue3 组件封装,并演示如何在父组件中调用和使用。 一、封装 ECharts 组…...

NAT 代理服务 内网穿透

🌈 个人主页:Zfox_ 🔥 系列专栏:Linux 目录 一:🔥 NAT 技术背景二:🔥 NAT IP 转换过程三:🔥 NAPT四:🔥 代理服务器🦋 正向…...

CAN硬件协议详解

一、基本理论: 1、CAN的总线结构: CAN总线 网络结构 有 闭环和开环 两种形式;无论实际的网络多复杂,都离不开这两种基本结构。 闭环结构的CAN总线网络,总线的两端各并联一个120Ω的电阻,两…...

网络安全等级保护:网络安全等级保护基本技术

下面我们概括性探讨一下等级保护用到的一些技术,有关这些技术的每一个方面的每一个部分都可以是一部大块头,甚至一部大块头都无法介绍清楚,需要系列性的书籍去展开,所以这里也只能做到抛砖而已。期望起到抛砖引玉的作用&#xff0…...

信刻光盘安全隔离与信息交换系统让“数据摆渡”安全高效

随着数据传输、存储及信息技术的飞速发展,信息安全保护已成为重中之重。各安全领域对跨网数据交互的需求日益迫切,数据传输的安全可靠性成为不可忽视的关键。为满足业务需求并遵守保密规范,针对于涉及重要秘密信息,需做到安全的物…...

数据结构课程设计(java实现)---九宫格游戏,也称幻方

【问题描述】 九宫格,一款数字游戏,起源于河图洛书,与洛书是中国古代流传下来的两幅神秘图案,历来被认为是河洛文化的滥觞,中华文明的源头,被誉为"宇宙魔方"。九宫格游戏对人们的思维锻炼有着极大…...

[思考记录]AI时代下,悄然的改变

尝试用 xAI-Grok 去了解DS开源周的信息,有那么点被Grok的输出惊艳到。“请你以技术编辑的角色,重点参考官方文档,介绍DeepSeek开源周的内容,写一篇技术分享文章。”,得到的文字看起来很是舒服,内容靠谱、结…...

JAVA笔记【一】

现实 (抽象) 类 (创建) 对象 特点: 1.面向对象 2.跨平台 3.安全性 4.多线程 java程序基本结构 1. java源代码文件实际是普通的文本文件,源代码文件必须是.java扩展名,且必须小写 2. …...

[Java基础] 常用注解

文章目录 1. 元注解2. 非元注解2.1 常用JDK自带注解2.2 常用Spring相关注解2.2.1 在Spring框架中,注解用于简化配置和增强代码的可读性。以下是常用的Spring注解的一部分2.2.2 针对controller的相关注解2.2.3 AOP相关注解2.2.4 Enable系列注解 2.3 常用Lombok注解 1…...

uvm中的run_test作用

在SystemVerilog和UVM验证环境中,run_test() 是启动UVM仿真流程的核心函数。它负责初始化UVM框架、创建测试用例实例,并触发UVM的Phase机制来执行验证环境的构建和运行 1. run_test() 的作用 run_test() 是UVM提供的内置函数,定义在UVM库中…...

brew search报错,xcrun:error:invalid active developer path CommandLineTools

问题出现的原因 出现“xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun”错误,通常是因为Xcode命令行工具未正确安装或其路径已损坏。以下是几种常见的…...

C#内置委托(Action)(Func)

概述 在 C# 中,委托是一种类型,它表示对具有特定参数列表和返回类型的方法的引用。C# 提供了一些内置委托,使得开发者可以更方便地使用委托功能,无需手动定义委托类型。本文将详细介绍 Action 和 Func 这两个常用的内置委托。 A…...

kubernetes 部署项目

随着容器化技术的发展,使用Kubernetes(简称K8s)来部署和管理应用已经成为现代软件开发的标准实践之一。Kubernetes提供了一套强大的工具集,使得部署、扩展和管理应用程序变得更为简便高效。本文将带你走过从准备环境到部署一个实际…...

《几何原本》命题I.2

《几何原本》命题I.2 从一个给定的点可以引一条线段等于已知的线段。 设 A A A 为给定点, B C BC BC 为给定线段 连接 A B AB AB,作等边 △ A B D \triangle ABD △ABD 以 B B B 为圆心, B C BC BC 为半径作小圆 延长 D B DB DB 交小圆…...

【我的 PWN 学习手札】House of Kiwi

House of Kiwi 之前我们利用IO_FILE一般是通过劫持vtable来实现的, House of Kiwi虽然不是通过劫持vtable来实现,但实质上是劫持vtable指向的全局的_IO_file_jumps_表来实现的。注意:对于某些版本的glibc,_IO_file_jumps_并不可写…...

nvm的学习

学习 nvm(Node Version Manager) 是掌握 Node.js 开发的关键技能之一。以下是系统的学习路径和实战指南,涵盖从基础到进阶的内容: 一、基础入门 1. nvm 的核心作用 多版本共存:安装和管理多个 Node.js 版本&#xff…...

eNSP-Cloud(实现本地电脑与eNSP内设备之间通信)

说明: 想象一下,你正在用eNSP搭建一个虚拟的网络世界,里面有虚拟的路由器、交换机、电脑(PC)等等。这些设备都在你的电脑里面“运行”,它们之间可以互相通信,就像一个封闭的小王国。 但是&#…...

在rocky linux 9.5上在线安装 docker

前面是指南,后面是日志 sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo dnf install docker-ce docker-ce-cli containerd.io -y docker version sudo systemctl start docker sudo systemctl status docker …...

如何在看板中体现优先级变化

在看板中有效体现优先级变化的关键措施包括:采用颜色或标签标识优先级、设置任务排序规则、使用独立的优先级列或泳道、结合自动化规则同步优先级变化、建立定期的优先级审查流程。其中,设置任务排序规则尤其重要,因为它让看板视觉上直观地体…...

OpenLayers 分屏对比(地图联动)

注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 地图分屏对比在WebGIS开发中是很常见的功能,和卷帘图层不一样的是,分屏对比是在各个地图中添加相同或者不同的图层进行对比查看。…...

JVM 内存结构 详解

内存结构 运行时数据区: Java虚拟机在运行Java程序过程中管理的内存区域。 程序计数器: ​ 线程私有,程序控制流的指示器,分支、循环、跳转、异常处理、线程恢复等基础功能都依赖这个计数器完成。 ​ 每个线程都有一个程序计数…...

【网络安全】开源系统getshell漏洞挖掘

审计过程: 在入口文件admin/index.php中: 用户可以通过m,c,a等参数控制加载的文件和方法,在app/system/entrance.php中存在重点代码: 当M_TYPE system并且M_MODULE include时,会设置常量PATH_OWN_FILE为PATH_APP.M_T…...

Golang——9、反射和文件操作

反射和文件操作 1、反射1.1、reflect.TypeOf()获取任意值的类型对象1.2、reflect.ValueOf()1.3、结构体反射 2、文件操作2.1、os.Open()打开文件2.2、方式一:使用Read()读取文件2.3、方式二:bufio读取文件2.4、方式三:os.ReadFile读取2.5、写…...

R 语言科研绘图第 55 期 --- 网络图-聚类

在发表科研论文的过程中,科研绘图是必不可少的,一张好看的图形会是文章很大的加分项。 为了便于使用,本系列文章介绍的所有绘图都已收录到了 sciRplot 项目中,获取方式: R 语言科研绘图模板 --- sciRplothttps://mp.…...

适应性Java用于现代 API:REST、GraphQL 和事件驱动

在快速发展的软件开发领域,REST、GraphQL 和事件驱动架构等新的 API 标准对于构建可扩展、高效的系统至关重要。Java 在现代 API 方面以其在企业应用中的稳定性而闻名,不断适应这些现代范式的需求。随着不断发展的生态系统,Java 在现代 API 方…...

华为OD机试-最短木板长度-二分法(A卷,100分)

此题是一个最大化最小值的典型例题, 因为搜索范围是有界的,上界最大木板长度补充的全部木料长度,下界最小木板长度; 即left0,right10^6; 我们可以设置一个候选值x(mid),将木板的长度全部都补充到x,如果成功…...