Mysql 是一款關(guān)系型數(shù)據(jù)庫(kù),可以存儲(chǔ)結(jié)構(gòu)化的數(shù)據(jù)璃吧。今天介紹下 Mysql 提供的一個(gè)轉(zhuǎn)換類型的方法CONVERT
;
CONVERT(expr,type)
能把字段轉(zhuǎn)成指定類型随珠,其中type
可填類型如下喧伞,和CAST(expr AS type)
功能一樣,如SELECT CONVERT("2017-08-29", DATE)
谁榜,對(duì)于字符字段排序select * from user order by cast(age as UNSIGNED) asc;
;
如果age字段是char 類型存儲(chǔ)兄旬,select * from user order by age asc;
輸出結(jié)果如下:
name | age |
---|---|
Li | 1 |
Zhang | 10 |
Huang | 2 |
這可能不是我們想要的惠桃,我們希望按數(shù)值來(lái)排,這時(shí)可以轉(zhuǎn)下類型辖试,使用select * from user order by cast(age as UNSIGNED) asc;
結(jié)果如下:
name | age |
---|---|
Li | 1 |
Huang | 2 |
Zhang | 10 |
CONVERT(expr,type)
中type
可填類型如下:
type類型(中括號(hào)表選填) | 說(shuō)明 | 示例 | |
---|---|---|---|
BINARY[(N)] | 二進(jìn)制 |
SELECT CONVERT("abcde", BINARY(3)) AS num 輸出是abc |
|
CHAR[(N)] [charset_info] | 字符 |
SELECT CONVERT("abcde", CHAR(10)) AS num 輸出abcde辜王,注意長(zhǎng)度不足10不會(huì)在后面補(bǔ)空格 |
|
DATE | 沒(méi)有時(shí)間的日期,如2019-05-21 | SELECT CONVERT("2017-08-29", DATE);輸出:2017-08-29 | |
DATETIME | 日期時(shí)間罐孝,如2019-05-21 17:00:00 |
SELECT CONVERT("2019-08-01", DATETIME); 輸出2019-08-01 00:00:00
|
|
TIME | 去掉日期的時(shí)間呐馆,如17:00:00
|
SELECT CONVERT("2017-08-01 01:01:01", TIME) ; 輸出01:01:01
|
|
DECIMAL[(M[,D])] | 小數(shù),M是總位數(shù)(包含小數(shù)位數(shù))莲兢,D 是小數(shù)位數(shù) |
SELECT CONVERT(9999.9999, DECIMAL(3,2)) AS num 輸出是9.99 |
|
SIGNED [INTEGER] | 有符號(hào) Integer |
SELECT CONVERT(-9999.5099, SIGNED) AS num 輸出-10000 |
|
UNSIGNED [INTEGER] | 無(wú)符號(hào) Integer |
SELECT CONVERT(9999.5099, UNSIGNED) AS num 輸出10000
|
補(bǔ)充汹来,官方文檔說(shuō)type
可以轉(zhuǎn)成DOUBLE
续膳、FLOAT
,但實(shí)測(cè)執(zhí)行卻報(bào)錯(cuò)收班。