MySQL显式类型转换实例分享

在之前的文章中,我们提到过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函数支持转换的数据类型列表:

类型 备注

DATEYYYY-MM-DDDATETIMEYYYY-MM-DD HH:mm:ssTIMEHH:mm:ssDECIMAL通常用于带小数位CHAR固定长度字符串NCHAR类型于CHAR一致SIGNED一个有符号的64整数位UNSIGNED一个无符号的64整数位BINARY二进制字符串JSONMySQL 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升级的最佳方法实例分享

详解php封装Mysql操作类

代码小浣熊 代码小浣熊

代码小浣熊是基于商汤大语言模型的软件智能研发助手,覆盖软件需求分析、架构设计、代码编写、软件测试等环节

代码小浣熊 396 查看详情 代码小浣熊

PHP如何解决MySQL存储数据中文乱码

以上就是MySQL显式类型转换实例分享的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/786732.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年11月26日 12:21:11
下一篇 2025年11月26日 12:21:32

相关推荐

  • PHP,永不倒下的大象!

    照片由 Ben Griffiths 在 Unsplash 上拍摄 PHP是一门广受好评的语言,同时也受到其他人的批评,有人说它正在消亡,但真的是这样吗,值得花时间学习PHP吗? PHP PHP 是 Rasmus Lerdorf 在 90 年代开发的一种编程语言,最初它被开发为一种服务器端语言,帮助 …

    2025年12月9日
    000
  • 小型 Swoole 实体管理器

    我很高兴向大家介绍 Small Swoole Entity Manager。 它是一个围绕 Swoole(和 OpenSwoole)构建的 ORM。 它支持异步连接到: MySQLPostgres小型 Swoole Db(Swoole Tables 之上的关系层) 目前仅提供核心包; Symfony…

    2025年12月9日
    000
  • PHP 函数异常处理与数据库操作的结合

    结合异常处理与数据库操作可增强应用程序健壮性。异常处理使用 try-catch 语句处理错误,提供详细错误信息。在数据库操作中,通过使用 try-catch 语句包围数据库连接和查询操作,可以捕获异常并显示在 catch 块中,同时确保正确关闭数据库连接。 PHP 函数异常处理与数据库操作的结合 简…

    2025年12月9日
    000
  • php函数版本更新对代码重构和重用策略的影响

    php 函数版本更新对代码重构和重用策略的影响:重构影响:函数删除:重构以使用替代方法。函数重命名:重构现有调用位置。参数更改:更新调用代码以匹配更改。重用影响:库升级:更改代码以适应新的 api。函数不兼容:重构代码以使用新的函数签名。版本化限制:限制代码中所允许多种 php 版本的使用。 PHP…

    2025年12月9日
    000
  • PHP 函数异常处理最佳实践

    PHP 函数异常处理最佳实践 简介 异常处理是软件开发中用于处理意外错误和异常情况的机制。在 PHP 中,可以使用 try-catch 块以及 set_exception_handler() 函数来实现异常处理。以下是一些最佳实践,可帮助您在 PHP 代码中有效地处理异常。 使用 try-catch…

    2025年12月9日
    000
  • PHP 函数异常处理:常见问题及解决方法

    php 异常处理允许在运行时通过 try/catch/finally 捕获错误,并可抛出自定义异常(继承自 exception 类)。常见问题包括:php 抛出的异常类型(exception、error、logicexception、runtimeexception)以及如何使用这些异常类型处理数据…

    2025年12月9日
    000
  • PHP 函数版本更新指南:安全考虑因素

    更新 php 函数版本时必须注意:检查参数和返回值的更改。采用更新的算法以提高安全性。避免使用已弃用的函数。 PHP 函数版本更新指南:安全因素 PHP 函数随着时间的推移不断更新,修复 bug 和引入新功能。但是,这些更新也可能引入安全隐患。在更新 PHP 函数版本时,必须考虑以下安全因素: 1.…

    2025年12月9日
    000
  • PHP 函数版本更新指南:面向开发者的培训资源

    php 函数版本更新指南提供培训资源,帮助开发者应对更新,包括官方 php 手册、在线课程、社区论坛、代码库比较器和最佳实践,如定期检查发布公告、使用版本控制和在测试环境中测试更改。 PHP 函数版本更新指南:面向开发者的培训资源 PHP 函数不断更新,以提高效率、安全性并适应新的技术。对于开发者来…

    2025年12月9日
    000
  • PHP 函数在教育领域的应用前景

    php 函数在教育领域具有广阔的应用前景,如管理学生信息、创建在线测验、计算成绩、管理教学资源等。实战案例:使用 php 函数构建学生成绩管理系统。 PHP 函数在教育领域的应用前景 简介 PHP(超文本预处理器)是一种广泛使用的编程语言,特别适合于 Web 开发。它提供了各种函数,用于处理变量、字…

    2025年12月9日
    000
  • PHP 函数版本更新指南:性能优化技巧

    PHP 函数版本更新指南:性能优化技巧 前言 PHP 函数版本的变化会对应用程序的性能产生重大影响。了解这些变化并正确地更新代码对于优化性能至关重要。这篇文章将提供一个指导,帮助你更新 PHP 函数版本,并提供实际案例来说明这些优化技巧。 PHP 版本的变化 立即学习“PHP免费学习笔记(深入)”;…

    2025年12月9日
    000
  • 如何利用 PHP 函数优化项目的性能和效率?

    利用 PHP 函数优化项目的性能和效率 在 PHP 项目中,合理使用函数可以极大地提升代码的可读性、可维护性和效率。本文将介绍几个常用的 PHP 函数,并通过实战案例展示如何优化项目的性能和效率。 1. 使用预定义函数: PHP 提供了丰富的预定义函数,可用于各种常见任务,如字符串处理、数组操作和数…

    2025年12月9日
    000
  • PHP 函数代码部署最佳实践:如何处理密钥管理?

    在 php 函数代码部署中,密钥管理至关重要,最佳实践包括:使用环境变量存储密钥,避免硬编码。安全存储环境变量,如使用 .env 文件或密钥管理系统。限制访问令牌,生成有限访问的令牌而不是共享永久性密钥。使用中间件验证授权和执行访问控制。定期轮换密钥以降低泄露风险。 PHP 函数代码部署最佳实践:处…

    2025年12月9日
    000
  • php函数版本更新的行业案例研究

    回答:更新 php 函数版本至关重要,可提高安全性、性能和代码可维护性。详细描述:评估影响:确定依赖于过时函数的代码并评估更新影响。制定计划:制定分阶段更新计划,从不重要函数开始。编写测试用例:验证更新后函数的行为。逐步更新:分批更新函数,逐一彻底测试。监控性能:更新后监控网站性能,确保没有意外性能…

    2025年12月9日
    000
  • 部署php函数代码时的安全考虑

    部署 php 函数代码时应考虑以下安全措施:验证和授权:验证和授权用户输入;输入过滤:使用过滤函数清除恶意脚本和代码;函数隔离:将函数包含在独立脚本或模块中,防止未授权访问;防范 sql 注入:使用参数化查询或 mysqli_prepared_stmt 类;防范 xss:通过 htmlspecial…

    2025年12月9日
    000
  • PHP 自函数编写中的安全注意事项

    确保自函数编写安全,需注意以下事项:转义用户输入,防止 sql 注入和 xss 攻击。验证输入类型,确保接受预期的内容。防止缓冲区溢出,检查输入长度并防止超出限制。使用适当的访问控制,限制对敏感信息的访问。彻底测试和审查代码,找出潜在的安全漏洞。 PHP 自函数编写中的安全注意事项 引言在 PHP …

    2025年12月9日
    000
  • php函数版本更新的未来趋势和发展

    php 函数版本更新将继续采用版本控制、类型标注、函数指针和泛型等未来趋势:版本控制确保向后兼容性;类型标注提升代码质量;函数指针加强可重用性;泛型提高代码可重复性。 PHP 函数版本更新的未来趋势和发展 简介PHP 函数版本更新对于语言的持续发展和功能增强至关重要。了解未来趋势和发展有助于开发者做…

    2025年12月9日
    000
  • 如何应对php函数版本更新中的不兼容性

    php 函数版本更新中的不兼容性可以通过以下方式解决:识别不兼容性:参考 php 手册,查找弃用、签名和语义更改。解决不兼容性:升级代码以满足新函数的签名、语义和用法。实战案例:如 mysql_query 函数在 php 7.x 中被弃用,需要更新为 mysqli_query。 如何应对 PHP 函…

    2025年12月9日
    100
  • PHP自定义函数的安全性考虑和最佳实践

    PHP 自定义函数的安全性考虑和最佳实践 引言 在 PHP 中使用自定义函数可以大大提高代码的可维护性和可重用性。然而,在创建和使用自定义函数时要注意安全性考虑。本文将探讨自定义函数的安全性风险,并提供最佳实践以减轻这些风险。 安全性风险 以下是一些与自定义函数相关的安全性风险: 立即学习“PHP免…

    2025年12月9日
    000
  • php函数版本更新对性能和安全性有哪些影响?

    php 函数版本更新的影响:性能影响:更新版本通常优化代码,提高性能,例如减少内存使用或加快执行速度。安全性影响:新版本修复安全漏洞(如缓冲区溢出或 xss),增强应用程序安全性,防止恶意攻击。 PHP 函数版本更新对性能和安全性有哪些影响? 简介 PHP 函数的版本更新不仅能引入新功能,还能提高性…

    2025年12月9日
    000
  • PHP 函数与云计算服务的集成

    通过集成云计算服务,php应用程序可以利用诸如云存储、数据库和机器学习等功能。具体集成步骤包括,1. 使用php函数库或客户端与云服务交互,例如aws-sdk-php函数库用于与aws s3存储交互;2. 建立云服务客户端,并提供必要的配置信息;3. 调用云服务函数,如上传文件到s3桶或处理机器学习…

    2025年12月9日
    000

发表回复

登录后才能评论
关注微信