转载自   MySQL cast()函数

MySQL CAST函数介绍

MySQL CAST()函数的语法如下:

CAST(expression AS TYPE);

CAST()函数将任何类型的值转换为具有指定类型的值。目标类型可以是以下类型之一:BINARYCHARDATEDATETIMETIMEDECIMALSIGNEDUNSIGNED

CAST()函数通常用于返回具有指定类型的值,以便在WHERE,JOIN和HAVING子句中进行比较。

我们来看一下使用CAST()函数的一些例子。

MySQL CAST函数示例

在下面的例子中,在进行计算之前,MySQL将一个字符串隐式转换成一个整数:

mysql> SELECT (1 + '1')/2;
+-------------+
| (1 + '1')/2 |
+-------------+
|           1 |
+-------------+
1 row in set

要将字符串显式转换为整数,可以使用CAST()函数,如以下语句:

mysql> SELECT (1 + CAST('1' AS UNSIGNED))/2;
+-------------------------------+
| (1 + CAST('1' AS UNSIGNED))/2 |
+-------------------------------+
| 1                             |
+-------------------------------+
1 row in set

以下语句明确地将整数转换为字符串,并将该字符串与另一个字符串连接:

mysql> SELECT CONCAT('MySQL CAST example #',CAST(2 AS CHAR));
+------------------------------------------------+
| CONCAT('MySQL CAST example #',CAST(2 AS CHAR)) |
+------------------------------------------------+
| MySQL CAST example #2                          |
+------------------------------------------------+
1 row in set

我们来看看示例数据库(yiibaidb)中的orders表,其表结构如下 -

mysql> desc orders;
+----------------+-------------+------+-----+---------+-------+
| Field          | Type        | Null | Key | Default | Extra |
+----------------+-------------+------+-----+---------+-------+
| orderNumber    | int(11)     | NO   | PRI | NULL    |       |
| orderDate      | date        | NO   |     | NULL    |       |
| requiredDate   | date        | NO   |     | NULL    |       |
| shippedDate    | date        | YES  |     | NULL    |       |
| status         | varchar(15) | NO   |     | NULL    |       |
| comments       | text        | YES  |     | NULL    |       |
| customerNumber | int(11)     | NO   | MUL | NULL    |       |
+----------------+-------------+------+-----+---------+-------+
7 rows in set

请参阅以下查询:

SELECT orderNumber,requiredDate
FROM orders
WHERE requiredDate BETWEEN '2013-01-01' AND '2013-01-31';

执行上面语句,得到以下结果 -

+-------------+--------------+
| orderNumber | requiredDate |
+-------------+--------------+
|       10100 | 2013-01-13   |
|       10101 | 2013-01-18   |
|       10102 | 2013-01-18   |
+-------------+--------------+
3 rows in set

查询选择要求日期(requiredDate)在2013年1月的订单。requireDate列的数据类型为DATE,因此MySQL必须将文字字符串“2013-01-01”“2013-01-31”在评估WHERE条件之前转换为TIMESTAMP值 。

但是,为了安全起见,可以使用CAST()函数将字符串显式转换为TIMESTAMP值,如下所示:

SELECT orderNumber,requiredDate
FROM orders
WHERE requiredDate BETWEEN  CAST('2013-01-01' AS DATETIME)AND CAST('2013-01-31' AS DATETIME);

执行上面查询语句,得到以下结果 -

+-------------+--------------+
| orderNumber | requiredDate |
+-------------+--------------+
|       10100 | 2013-01-13   |
|       10101 | 2013-01-18   |
|       10102 | 2013-01-18   |
+-------------+--------------+
3 rows in set

以下语句将DOUBLE值转换为CHAR值,并将结果用作CONCAT函数的参数:

SELECT productName,CONCAT('Prices(',CAST(buyprice AS CHAR),',',CAST(msrp AS CHAR),')') prices
FROM products;

执行上面查询语句,得到以下结果 -

+---------------------------------------------+-----------------------+
| productName                                 | prices                |
+---------------------------------------------+-----------------------+
| 1969 Harley Davidson Ultimate Chopper       | Prices(48.81,95.30)   |
| 1952 Alpine Renault 1300                    | Prices(98.58,214.30)  |
| 1996 Moto Guzzi 1100i                       | Prices(68.99,118.94)  |
| 2003 Harley-Davidson Eagle Drag Bike        | Prices(91.02,193.66)  |
| 1972 Alfa Romeo GTA                         | Prices(85.68,136.00)  |
***************** 此处省略了一大波数据 *******************************************
| 1982 Camaro Z28                             | Prices(46.53,101.15)  |
| ATA: B757-300                               | Prices(59.33,118.65)  |
| F/A 18 Hornet 1/72                          | Prices(54.40,80.00)   |
| The Titanic                                 | Prices(51.09,100.17)  |
| The Queen Mary                              | Prices(53.63,99.31)   |
| American Airlines: MD-11S                   | Prices(36.27,74.03)   |
| Boeing X-32A JSF                            | Prices(32.77,49.66)   |
| Pont Yacht                                  | Prices(33.30,54.60)   |
+---------------------------------------------+-----------------------+
110 rows in set

在本教程中,您学习了如何使用MySQL CAST()函数将任何类型的值转换成指定类型的值。

MySQL cast()函数相关推荐

  1. MySQL / cast()函数

    MySQL / cast()函数 场景:如何数字后的0去掉? SELECT IF(`repeat_indicator`=0,'临时医嘱','长期医嘱') '医嘱类型', `plan_time` '计划 ...

  2. MySQL CAST 函数与 CONVERT 函数

    Ptw-cwl 前面我们介绍的两个函数用于字符串和日期类型之间进行相互转换,有时我们需要数据之间的转换不仅仅局限在字符串和日期之前.接下来笔者给大家介绍的 cast() 函数和 convert() 函 ...

  3. MySQL - cast()函数

    日常建表习惯用 create tabel  tb_name as select......,这种建表方式的其中一个缺点就是:系统会根据查询出的字段,定义字段类型.有时候会把 '%Y-%m-%d' 格式 ...

  4. MySQL CAST()函数用法

    一.语法 expr:源数据,如字符串'China'. type:目标数据类型,例如CHAR. cast(expr AS type) 二.命令说明 将任何类型的值转换为具有指定类型的值. CAST()函 ...

  5. [Mysql] CAST函数

    CAST函数用于将值从一种数据类型转换为表达式中指定的另一种数据类型 语法 CAST(value AS datatype) AS关键字用于分隔两个参数,在AS之前的是要处理的数据,在AS之后的是要转换 ...

  6. mysql类型转换及小数点保留问题(cast函数)

    在写SQL里面总会遇到数据类型的问题,这里讲一下cast的用法: 1.类型转换 MySQL 的CAST()函数可用来获取一个类型的值,并产生另一个类型的值 cast()函数是一个转换函数,参数是一个表 ...

  7. Mysql常用函数之CAST函数

    Mysql常用函数之CAST函数 CAST函数语法规则是:Cast(字段名 as 转换的类型 ),其中类型可以为: CHAR[(N)] 字符型 DATE 日期型 DATETIME 日期和时间型 DEC ...

  8. mysql cast报错_在mysql中使用cast函数报错

    今天遇到在使用mysql的cast函数报错的问题,这个函数的意思是把当前的字段转成某种类型的字段,我使用cast(xxxx as int) 这种方式,但是发现报错了,查阅资料发现 参考这个百度,总结来 ...

  9. MYSQL中,CAST函数的使用规则以及convert对比

    MYSQL中,CAST函数的使用规则 CAST函数语法规则是:Cast(字段名 as 转换的类型 ),其中类型可以为: CHAR[(N)] 字符型 DATE 日期型 DATETIME 日期和时间型 D ...

最新文章

  1. python json库安装_win 安装python的cjson库
  2. CG CTF WEB 文件包含
  3. 双离合档把上按钮作用_英特尔展示双屏幕概念笔记本:带有双铰链
  4. Java日期操作工具类
  5. 使用idea上传项目到gitHub
  6. python软件下载视频教程-Python视频教程下载:Python从入门到精通【传智播客】
  7. 贪心法——LeetCode 55 跳跃游戏
  8. 【图像修复】基于matlab GUI Lucy_Richardson迭代法图像修复【含Matlab源码 846期】
  9. MySQL数据库创建与维护数据表
  10. 计算机图画大赛作品六年级,小学学生电脑绘画比赛活动方案-20210407071921.docx-原创力文档...
  11. 版本控制之最佳实践(Git版)
  12. 什么是高匿代理、匿名代理和透明代理?它们有什么区别?
  13. java double丢失精度问题,加减乘除计算出错出现99999
  14. Wormhole流程搭建测试踩坑总结(二)
  15. Poemscape|Beta阶段事后诸葛亮
  16. 解决连接ORACLE错误:ORA-01033: ORACLE 正在初始化或关闭
  17. python 编写获取阿里巴巴行业分类数据代码
  18. 怎么将手机里的PDF文件转成图片
  19. 1.网络相关TFTP
  20. java计算机毕业设计客户关系智能管理系统源码+mysql数据库+系统+lw文档+部署

热门文章

  1. com.mysql.cj.exceptions.InvalidConnectionAttributeException
  2. 7-49 打印学生选课清单 (25 分)(思路+详解+map做法(一对多)+超时解决)Come baby!
  3. 2019吉首大学计算机调剂,吉首大学2019年硕士研究生调剂考生复试情况分学院公示...
  4. [PAT乙级]1007 素数对猜想
  5. [Java基础]Calendar类基础
  6. C++map容器-构造和赋值
  7. Hash-table(用除法散列法实现)
  8. equals, hashCode, toString方法重写,深入探究equals
  9. word List 47
  10. 调试opencv程序显示应用程序无法正常启动,0xc000007b