我的编程空间,编程开发者的网络收藏夹
学习永远不晚

MySQL显式类型转换实例

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

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显式类型转换实例”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

MySQL显式类型转换实例

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

go 类型转换方式(interface 类型的转换)

go 在做类型转换时,报错:cannot convert m (type interface {}) to type Msg: need type assertion原因: go 的在 interface 类型转换的时候, 不是使用类型的转
2022-06-07

C#类型转换实例分析

这篇“C#类型转换实例分析”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“C#类型转换实例分析”文章吧。C# 类型转换类型转换
2023-06-17

go类型转换及与C的类型转换方式

GO类型转换及与C的类型转换 类型转换 语法dst := float32(src) 示例var num int = 520 f32 := float32(num) i64 := int64(num) 注意:加入val是一个指针,int32(
2022-06-07

JavaScript隐式类型转换例子总结

这篇文章主要介绍了JavaScript隐式类型转换例子总结,熟练掌握类型转换,理解其中的规律。可以让你的代码更简洁更安全,下文围绕主题JS隐式转换,需要的朋友可以参考一下
2022-11-13

struts2中类型转换实例代码

类型转换 所有的页面与控制器传递的数据都是String类型,在对其进行处理时可能会用到各种的数据类型,程序无法自动完成数据类型的转换,这就需要我们在代码中进行手手动操作,这个过程就称为类型转换。内置类型转换器 在Web
2023-05-31

mysql存在哪些隐式类型转换

mysql存在的隐式类型转换有字符串到数值类型、日期和时间类型、浮点数和整数类型、NULL值等。详细介绍:1、字符串到数值类型的隐式类型转换,当一个字符串和一个数值类型的值进行比较或计算时,MySQL会将字符串转换为数值类型;2、日期和时间
mysql存在哪些隐式类型转换
2023-11-14

ORACLE隐式类型转换

隐式类型转换简介   通常ORACLE数据库存在显式类型转换(Explicit Datatype Conversion)和隐式类型转换(Implicit Datatype Conversion)两种类型转换方式。如果进行比较或运算的两个值的数据类型不同时(源数
ORACLE隐式类型转换
2020-03-25

mysql 数据类型转换的实现

一、问题 有一张如下图所示的表,需要我们查出 result 值大于 reference_high值的数据然后我们写了下面的SQL查询语句SELECT i.result,i.reference_high FROM report_item i
2022-05-25

Golang泛型实现类型转换的方法实例

将一个值从一种类型转换到另一种类型,便发生了类型转换,下面这篇文章主要给大家介绍了关于Golang泛型实现类型转换的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
2022-12-30

PHP类型转换实例代码分析

今天小编给大家分享一下PHP类型转换实例代码分析的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。基本数据类型首先,我们需要了解
2023-07-05

编程热搜

目录