背景:同事找我研究一下为什么date类型怎么转varchar类型。我上网浏览了一下blog,发现公说公有理,婆说婆有理…我感觉谁说的也对啊!但是就是到我这不行了,干脆,上官网,找专业的。找到了CAST() 以及 CONVERT()能够转换的类型type 只有下面这几种。
CAST(expr AS type)
该CAST()函数接受任何类型的表达式并生成指定类型的结果值,类似于 CONVERT()。CAST() 是标准的SQL语法。
CONVERT(expr,type), CONVERT(expr USING transcoding_name)
该CONVERT()函数采用任何类型的表达式,并生成指定类型的结果值。CONVERT(… USING …)是标准的SQL语法。
SELECT CONVERT('abc' USING utf8);
如果没有using 那么和CAST() 一样 ,type允许这些值有一下几种:
①BINARY[(N)] :生成具有BINARY数据类型的字符串 。
②CHAR[(N)] [charset_info] : 生成具有CHAR数据类型的字符串 。如果没有charset_info子句,则 CHAR生成具有默认字符集的字符串。要明确指定字符集,CHARACTER SET charset_name:生成具有给定字符集的字符串。
③DATE:生成DATE类型的值。
④DATETIME :生成DATETIME类型的值。
⑤DECIMAL[(M[,D])] :生成DECIMAL的值。如果给出了可选值M和 D值,则它们指定最大位数和小数点后面的位数。
⑥JSON:生成JSON类型的值。
⑦NCHAR[(N)] : 类似CHAR,但会产生一个带有国家字符集的字符串。NCHAR不允许指定尾随字符集信息。
⑧SIGNED [INTEGER] :生成有符号整数值。
⑨TIME:生成TIME类型的值。
⑩UNSIGNED [INTEGER]:生成无符号整数值。