美文网首页
Mysql convert方法小记

Mysql convert方法小记

作者: 黄耀鸿 | 来源:发表于2019-05-21 20:44 被阅读0次

Mysql 是一款关系型数据库,可以存储结构化的数据。今天介绍下 Mysql 提供的一个转换类型的方法CONVERT;

CONVERT(expr,type)能把字段转成指定类型,其中type可填类型如下,和CAST(expr AS type)功能一样,如SELECT CONVERT("2017-08-29", DATE),对于字符字段排序select * from user order by cast(age as UNSIGNED) asc;;

如果age字段是char 类型存储,select * from user order by age asc;输出结果如下:

name age
Li 1
Zhang 10
Huang 2

这可能不是我们想要的,我们希望按数值来排,这时可以转下类型,使用select * from user order by cast(age as UNSIGNED) asc; 结果如下:

name age
Li 1
Huang 2
Zhang 10

CONVERT(expr,type)type可填类型如下:

type类型(中括号表选填) 说明 示例
BINARY[(N)] 二进制 SELECT CONVERT("abcde", BINARY(3)) AS num输出是abc
CHAR[(N)] [charset_info] 字符 SELECT CONVERT("abcde", CHAR(10)) AS num输出abcde,注意长度不足10不会在后面补空格
DATE 没有时间的日期,如2019-05-21 SELECT CONVERT("2017-08-29", DATE);输出:2017-08-29
DATETIME 日期时间,如2019-05-21 17:00:00 SELECT CONVERT("2019-08-01", DATETIME);输出2019-08-01 00:00:00
TIME 去掉日期的时间,如17:00:00 SELECT CONVERT("2017-08-01 01:01:01", TIME) ;输出01:01:01
DECIMAL[(M[,D])] 小数,M是总位数(包含小数位数),D 是小数位数 SELECT CONVERT(9999.9999, DECIMAL(3,2)) AS num 输出是9.99
SIGNED [INTEGER] 有符号 Integer SELECT CONVERT(-9999.5099, SIGNED) AS num输出-10000
UNSIGNED [INTEGER] 无符号 Integer SELECT CONVERT(9999.5099, UNSIGNED) AS num输出10000

补充,官方文档说type可以转成DOUBLEFLOAT,但实测执行却报错。

相关文章

网友评论

      本文标题:Mysql convert方法小记

      本文链接:https://www.haomeiwen.com/subject/eluszqtx.html