MySQL显式类型转换实例
发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,小编给大家分享一下MySQL显式类型转换实例,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!undefined在之前的文章中
千家信息网最后更新 2026年11月03日MySQL显式类型转换实例
小编给大家分享一下MySQL显式类型转换实例,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
undefined
在之前的文章中,我们提到过CAST函数,用于显示进行类型转换。在避免隐式类型转换时,好处多多。其实这里面还有很多细节,是需要梳理下的。本文主要介绍了MySQL显式类型转换的基础知识,通过实例给出了分析结果,一起学习下吧。
首先来看看下面这个转换:
mysql> SELECT CAST('2017-12-14' AS DATE);+----------------------------+| CAST('2017-12-14' AS DATE) |+----------------------------+| 2017-12-14 |+----------------------------+1 row in set (0.00 sec)其中:
2017-12-14 是待转换的数据。
DATE为转换后的类型。
标准语法是这样的:
CAST(expr AS type)
这里需要注意的是type类型不支持所有的数据类型,而是支持特定的数据类型,也是今天这篇文章的重点。(我就吃过这个亏,想当然的以为支持所有数据类型,结果就被打脸了) 。
不支持的报错:
mysql> SELECT CAST('1024' AS int);ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'int)' at line 1支持的类型
下面是CAST函数支持转换的数据类型列表:
| 类型 | 备注 |
|---|---|
| DATE | YYYY-MM-DD |
| DATETIME | YYYY-MM-DD HH:mm:ss |
| TIME | HH:mm:ss |
| DECIMAL | 通常用于带小数位 |
| CHAR | 固定长度字符串 |
| NCHAR | 类型于CHAR一致 |
| SIGNED | 一个有符号的64整数位 |
| UNSIGNED | 一个无符号的64整数位 |
| BINARY | 二进制字符串 |
| JSON | MySQL 5.7.8 及更高版本 |
注意:
其中DATE支持的范围是: 1000-01-01 至 9999-12-31,(实验版本为:)
如果为: 999-01-01 结果则会0999-01-01。
如果为: 01-01-01则会为:2001-01-01。
mysql> select cast('999-11-11' as DATE);+---------------------------+| cast('999-11-11' as DATE) |+---------------------------+| 0999-11-11 |+---------------------------+1 row in set (0.00 sec)mysql> select cast('01-11-11' as DATE);+--------------------------+| cast('01-11-11' as DATE) |+--------------------------+| 2001-11-11 |+--------------------------+1 row in set (0.00 sec)mysql> select version();+-----------+| version() |+-----------+| 5.7.20 |+-----------+1 row in set (0.00 sec)
2. CAST函数中expr的值可以转换为type,其转换的结果才正确,否则转换后的结果默认值,如Null,0等。
例如:一个Char类型转换为Demical类型,转换的结果就为0。
mysql> SELECT CAST('ANDYQIAN' AS DECIMAL);+-----------------------------+| CAST('ANDYQIAN' AS DECIMAL) |+-----------------------------+| 0 |+-----------------------------+1 row in set, 1 warning (0.00 sec)转换案例
这里给出一些常用的类型转换例子。
DATE 类型
mysql> select cast('2017-12-14' as DATE);+----------------------------+| cast('2017-12-14' as DATE) |+----------------------------+| 2017-12-14 |+----------------------------+1 row in set (0.00 sec)TIME 类型
mysql> select cast('12:00:00' as TIME);+--------------------------+| cast('12:00:00' as TIME) |+--------------------------+| 12:00:00 |+--------------------------+1 row in set (0.00 sec)DATETIM 类型
mysql> select cast('2017-12-14 00:11:11' as DATETIME);+-----------------------------------------+| cast('2017-12-14 00:11:11' as DATETIME) |+-----------------------------------------+| 2017-12-14 00:11:11 |+-----------------------------------------+1 row in set (0.00 sec)SIGNED类型
mysql> select cast('-1024' as SIGNED);+-------------------------+| cast('-1024' as SIGNED) |+-------------------------+| -1024 |+-------------------------+1 row in set (0.00 sec)UNSIGNED类型
mysql> select cast('-1024' as UNSIGNED);+---------------------------+| cast('-1024' as UNSIGNED) |+---------------------------+| 18446744073709550592 |+---------------------------+1 row in set, 1 warning (0.00 sec)DECIMAL类型
mysql> select cast('18.11' as DECIMAL(18,2));+--------------------------------+| cast('18.11' as DECIMAL(18,2)) |+--------------------------------+| 18.11 |+--------------------------------+1 row in set (0.00 sec)以上是"MySQL显式类型转换实例"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!
类型
支持
结果
数据
篇文章
实例
函数
内容
字符
字符串
数位
版本
知识
符号
学习
一致
想当然
不怎么
二进制
例子
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
手磨咖啡
上海喔噻互联网科技有限公司
天津市摩尔互联网科技
互联网科技工作委员会主任
中国互联网科技工作委员会毛军
新华互联网科技学院
港股互联网科技股
壹账通互联网科技
奇酷互联网络科技公司
睿民互联网科技
互联网前沿科技
卓越科技互联网 招聘
互联网科技博主是什么意思
恒银科技与互联网金融
互联网科技实习生岗位职责
佳云科技和互联网广告
互联网公司黑科技创始人
广州百诚互联网科技有限公司官网
银川新华互联网科技学校是国营吗
宁波允成互联网科技有限公司
百单网互联网科技有限公司怎么样
互联网科技作文
卓越科技(互联网 )
凡科互联网科技
甘肃拓世互联网科技有限公司
承德科技产业互联网发展
996高科技互联网公司
东莞新华互联网科技学校
南通创西澳互联网科技有限公司
智帮互联网科技公司最近动向