cast()是一種數據類型轉換的函數,函數將任何類型的值轉換爲具有指定類型的值,語法格式如下所示:
CAST ( expression AS data_type)
expression:任何有效的MySQL表達式或者一些字符串數據。
AS:用於分隔兩個參數,在AS之前的是要處理的數據,AS之後是要轉換的數據類型。
data_type:系統所提供的數據類型,這裏不能使用用戶定義的數據類型。MySQL所能使用的可以是以下類型之一:
CHAR(字符型)、DATE(日期)、TIME(時間)、DATETIME(日期時間型)、DECIMAL(浮點數 float)、SIGNED(整數 int)。
value | 描述 |
---|---|
DATE | 日期,格式爲 'YYYY-MM-DD'. |
DATETIME | 日期加具體的時間,格式爲 'YYYY-MM-DD HH:MM:SS'. |
TIME | 時間,格式爲 'HH:MM:SS'. |
CHAR | 字符型 |
SIGNED | int |
UNSIGNED | 無符號int |
BINARY | 二進制型 |
DECIMAL | float型 |
通過CAST()函數把一個浮點數轉換爲decimal類型需要注意:
轉化時需要定義decimal值的精度與小數位數,默認情況下精度和小數位數的默認值分別是18與0,也就是說你在語句中不定義精度和小數位數的話,結果會把小數位數去掉。會進行四捨五入哦。
使用舉例:
select cast(20.3456 as decimal(10, 2)) as num
//結果:20.35
select cast('2019-03-08 15:31:26' as datetime ) as date
//結果:2019-03-08 15:31:26
select cast('2019-03-08 15:31:26' as date ) as date
//結果:2019-03-08
select cast('2019-03-08 15:31:26' as time ) as date
//結果:15:31:26
select cast('2015-11-03 15:31:26' as char ) as date
//結果:2019-03-08 15:31:26
例如表table1
date
2015-11-03 15:31:26
select cast(date as signed) as date from table1;
結果如下:
date
20151103153126
select cast(date as char) as date from table1;
// 結果如下:
// date
// 2015-11-03 15:31:26
select cast(date as datetime) as date from table1;
// 結果如下:
// date
// 2015-11-03 15:31:26
select cast(date as date) as date from table1;
// 結果如下:
// date
// 2015-11-03
select cast(date as time) as date from table1;
// 結果如下:
// date
// 15:31:26
// 這裏date對應日期,time對應時間