发新话题
打印

MYSQL Cast与 CONVERT函数比较

MYSQL Cast与 CONVERT函数比较

语法:
CAST(expr    AS    type),    CONVERT(expr,type)    ,    CONVERT(expr    USING    transcoding_name)      。
CAST()    和CONVERT()    函数可用来获取一个类型的值,并产生另一个类型的值。   
这个类型    可以是以下值其中的    一个:        
     
BINARY[(N)]      
CHAR[(N)]      
DATE      
DATETIME      
DECIMAL      
SIGNED    [INTEGER]      
TIME      
UNSIGNED    [INTEGER]   
CAST()    and    CONVERT(...    USING    ...)    是标准    SQL语法。CONVERT()的非USING    格式是ofis    ODBC语法。   
     
带有USING的CONVERT()    被用来在不同的字符集之间转化数据。在    MySQL中,    自动译码名和相应的字符集名称相同。例如。    这个语句将服务器的默认字符集中的字符串    'abc'转化为utf8字符集中相应的字符串:        
     
SELECT    CONVERT('abc'    USING    utf8);   
     
当你想要在一个CREATE    ...    SELECT    语句中创建一个特殊类型的列,则cast函数会很有用:   
     
CREATE    TABLE    new_table    SELECT    CAST('2000-01-01'    AS    DATE);   
     
该函数也用于ENUM    列按词法顺序的排序。通常ENUM列的排序在使用内部数值时发生。将这些值按照词法顺序派给    CHAR    结果:   
     
SELECT    enum_col    FROM    tbl_name    ORDER    BY    CAST(enum_col    AS    CHAR);
CAST(expr    AS    CHAR)    将表达式视为一个带有默认字符集的字符串。      
     
若用于一个诸如    CONCAT('Date:    ',CAST(NOW()    AS    DATE))这样的比较复杂的表达式的一部分,CAST()也会改变结果。   
     
你不应在不同的格式中使用    CAST()    来析取数据,但可以使用诸如LEFT()    或    EXTRACT()    的样的字符串函数来代替。

TOP

发新话题