在 mysql 操作中我們經常需要對資料進行類型轉換,此時我們應該使用的是cast()或convert()。兩者的對比:
相同點:都是進行資料類型轉換,實作的功能基本等同。
不同點:兩者的文法不同,cast(value as type) 、 convert(value,type)
1、使用 CAST:CAST ( expression AS data_type )
2、使用 CONVERT:CONVERT (data_type[(length)], expression [, style])
3、參數說明:
(1)expression:是任何有效的表達式。
(2)data_type:目标系統所提供的資料類型,包括 bigint 和 sql_variant。不能使用使用者定義的資料類型。
(3)length:nchar、nvarchar、char、varchar、binary 或 varbinary 資料類型的可選參數。
(4)style:日期格式樣式,借以将 datetime 或 smalldatetime 資料轉換為字元資料(nchar、nvarchar、char、varchar、nchar 或 nvarchar 資料類型);或者字元串格式樣式,借以将 float、real、money 或 smallmoney 資料轉換為字元資料(nchar、nvarchar、char、varchar、nchar 或 nvarchar 資料類型)。
cast 和 convert 都是用來轉化資料類型的,功能上是差不多的。
在時間轉化中一般用到 convert,因為它比 cast 多加了一個 style,可以轉化成不同時間的。打個簡單的例子吧,比方說查找一下目前的時間,select getdate(),而我們隻需要到年月日而已,這時我們就可以把它轉化為 select convert(varchar(100),GETDATE(),111) 轉化成我們需要的,而 select CAST(GETDATE() as varchar(30)) cast 就沒辦法或者是轉化過程比較繁瑣。
convert 時間後面的 style 值不同産生的時間格式也不一樣,具體可參看網站http://www.w3school.com.cn/sql/func_convert.asp