news 2026/2/23 22:09:40

Mysql convert函数、convert用法、字符串转数字、字符串转日期、类型转换函数

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Mysql convert函数、convert用法、字符串转数字、字符串转日期、类型转换函数
文章目录
  • 一、语法
    • 1.1、转换指定数据类型
    • 1.2、转换指定字符集
  • 二、示例
  • 三、cast与convert的区别

Mysql提供了两种将值转换成指定数据类型的函数

  • CONVERT函数:用于将值转换为指定的数据类型或字符集
  • CAST函数:用于将值转换为指定的数据类型。更多内容参考:Mysql cast函数

以下内容基于mysql8.0进行讲解。

Mysql 8.0 convert函数官网

一、语法

1.1、转换指定数据类型

语法如下:

CONVERT(expr,type)

convert(expr,type)语法与 CAST(expr AS type)是等效的,所以支持的数据类型也是一致的,可以直接参考Mysql cast函数

参数说明:

参数

描述

expr

必填。要转换的值、列名

type

必填。要转换成的数据类型。mysql版本不同,支持的数据类型不同,使用时需注意。

数据类型支持如下

类型

描述

备注

DATE

将 value 转化为 DATE 类型。 格式: “YYYY-MM-DD”

DATETIME

将 value 转化为 DATETIME 类型。格式: “YYYY-MM-DD HH:MM:SS”

DECIMAL[(M[,D])]

将 value 转化为 DECIMAL 类型。使用可选的 M 和 D 参数指定最大位数(M)和小数点(D)后的位数

TIME

将 value 转化为 TIME 类型。格式: “HH:MM:SS”

CHAR

将 value 转化为 CHAR 类型 (固定长度的字符串)

NCHAR

将 value 转化为 NCHAR (类似 CHAR, 但生成一个具有国家字符集的字符串)

SIGNED

将 value 转化为 SIGNED (有符号的 64 位整数)

UNSIGNED

将 value 转化为 UNSIGNED (无符号 64 位整数)

BINARY

将 value 转化为 BINARY (二进制字符串)

DOUBLE

将value转化为DOUBLE类型

Added in MySQL 8.0.17

FLOAT

将value转化为FLOAT类型 。

Added in MySQL 8.0.17

更多内容参考官网:Mysql 8.0 cast函数官网

1.2、转换指定字符集

CONVERT函数用于将字符串expr的字符集变成transcoding_name

语法结构

CONVERT(expr USING transcoding_name)
  • expr: 要转换的值

  • transcoding_name: 要转换成的字符集

    – utf8mb4
    SELECT CHARSET(‘ABC’);
    – gbk
    SELECT CHARSET(CONVERT(‘ABC’ USING gbk));
    SELECT CONVERT(‘abc’ USING utf8mb4);

二、示例

1.将值转换为DATE数据类型

-- 2022-05-25 SELECT CONVERT('2022-05-25', DATE); -- 2022-05-25 17:58:48 SELECT NOW(); -- 2022-05-25 SELECT CONVERT(NOW(), DATE);

2.将值转换为DATETIME数据类型

-- 2022-05-25 00:00:00 SELECT CONVERT('2022-05-25', DATETIME);

3.将值转换为TIME数据类型

-- 14:06:10 SELECT CONVERT('14:06:10', TIME); -- 2022-05-25 17:25:12 SELECT NOW(); -- 17:25:12 SELECT CONVERT(NOW(), TIME);

4.将值转换为CHAR数据类型

-- '150' SELECT CONVERT(150, CHAR); -- 'Hello World437' SELECT CONCAT('Hello World',CONVERT(437, CHAR));

5.将值转换为SIGNED数据类型

-- 5 SELECT CONVERT('5.0', SIGNED); -- 2 SELECT (1 + CONVERT('3', SIGNED))/2; -- -5 SELECT CONVERT(5-10, SIGNED); -- 6 SELECT CONVERT(6.4, SIGNED); -- -6 SELECT CONVERT(-6.4, SIGNED); -- 7 SELECT CONVERT(6.5, SIGNED); -- -7 SELECT CONVERT(-6.5, SIGNED);

6.将值转换为UNSIGNED数据类型

-- 5 SELECT CONVERT('5.0', UNSIGNED); -- 6 SELECT CONVERT(6.4, UNSIGNED); -- 0 SELECT CONVERT(-6.4, UNSIGNED); -- 7 SELECT CONVERT(6.5, UNSIGNED); -- 0 SELECT CONVERT(-6.5, UNSIGNED);

7.将值转换为DECIMAL数据类型

-- 9 SELECT CONVERT('9.0', DECIMAL); -- DECIMAL(数值精度,小数点保留长度) -- DECIMAL(10,2)可以存储最多具有8位整数和2位小数的数字 -- 精度与小数位数分别为10与2 -- 精度是总的数字位数,包括小数点左边和右边位数的总和 -- 小数位数是小数点右边的位数 -- 9.50 SELECT CONVERT('9.5', DECIMAL(10,2)); -- 99999999.99 SELECT CONVERT('1234567890.123', DECIMAL(10,2)); -- 220.232 SELECT CONVERT('220.23211231', DECIMAL(10,3)); -- 220.232

三、cast与convert的区别

CAST() 和 CONVERT() 都可以更改 MySQL 中的数据类型。主要区别在于 CONVERT() 还可以将数据的字符集转换为另一个字符集。CAST() 就不能用于更改字符集。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/18 15:59:53

maven导入spring框架

在eclipse导入maven项目, 在pom.xml文件中加入以下内容junit junit 3.8.1 test org.springframework spring-core ${org.springframework.version} org.springframework spring-beans ${org.springframework.version} org.springframework sprin…

作者头像 李华
网站建设 2026/2/22 20:17:36

分享 2 款基于 .NET 开源的实时应用监控系统

前言 在现代软件开发和运维管理中,实时应用监控系统扮演着至关重要的角色。它们能够帮助开发者和运维人员实时监控应用程序的状态,及时发现并解决问题,从而确保应用的稳定性和可靠性。今天大姚给大家分享 2 款基于.NET 开源的实时应用监控系…

作者头像 李华
网站建设 2026/2/21 14:43:03

基于STM32的果蔬保鲜系统设计

基于STM32的果蔬保鲜系统设计摘要随着果蔬产业的迅速发展,食品保鲜要求日益增高,研究表明控制保鲜库温湿度恒定和二氧化碳的浓度稳定对延长果蔬存储时间有显著促进作用。在果蔬保鲜过程中,对温湿度、二氧化碳浓度等参数的实时准确采集和检测是…

作者头像 李华
网站建设 2026/2/20 7:38:14

Kafka 基础概念

Kafka 基础概念 Kafka 是什么? 分布式流处理平台,专为高吞吐量、低延迟的实时数据流设计。核心功能包括发布-订阅消息系统、持久化存储和流式处理。 核心组件 Topic:消息的逻辑分类,类似数据库表。Partition:Topic 的物…

作者头像 李华
网站建设 2026/2/21 10:09:40

Java进阶-在Ubuntu上部署SpringBoot应用

随着云计算和容器化技术的普及,Linux 服务器已成为部署 Web 应用程序的主流平台之一。Java 作为一种跨平台的编程语言,具有广泛的应用场景。本文将详细介绍如何在 Ubuntu 服务器上部署 Java 应用,包括环境准备、应用发布、配置反向代理&#…

作者头像 李华
网站建设 2026/2/21 9:21:21

Java面向对象(进阶)

1.封装 2.继承 3.多态 4.抽象类 5.接口1.封装 封装是把过程和数据封闭起来以避免外键直接访问,并让外界只能通过已定义的接口实现访问。封装是一种信息隐藏技术,在Java中通过关键字private实现封装。其优点在于他可以隐藏私有数据,让使用者只…

作者头像 李华