MYSQL Cast函数是非常重要的MYSQL函数,下面就将为您详细介绍MYSQL Cast函数的语法及其使用,希望能让您对MYSQL Cast函数有更多的认识。
BINARY
CAST(str AS BINARY)和BINARY str相同。 CAST(expr AS CHAR)将表达式视为一个带有默认字符集的字符串。
若用于一个诸如CONCAT('Date: ',CAST(NOW() AS DATE))这样的比较复杂的表达式的一部分,CAST()也会改变结果。
你不应在不同的格式中使用CAST()来析取数据,但可以使用诸如LEFT() 或 EXTRACT() 的字符串函数来代替。
若要在数值语境中将一个字符串派给一个数值, 通常情况下,除了将字符串值作为数字使用外,你不需要做任何事:
mysql> SELECT 1+'1'; -> 2
若要在一个字符串语境中使用一个数字,该数字会被自动转化为一个BINARY 字符串。
mysql> SELECT CONCAT('hello you ',2); -> 'hello you 2'
MySQL支持带符号和无符号的64比特值的运算。若你正在使用数字操作符(如 +) 而其中一个操作数为无符号整数,则结果为无符号。可使用SIGNED 和UNSIGNED cast 操作符来覆盖它。将运算分别派给带符号或无符号64比特整数。
mysql> SELECT CAST(1-2 AS UNSIGNED) -> 18446744073709551615 mysql> SELECT CAST(CAST(1-2 AS UNSIGNED) AS SIGNED); -> -1
注意,如果任意一个操作数为一个浮点值,则结果为一个浮点值,且不会受到上述规则影响 (关于这一点, DECIMAL 列值被视为浮点值)。
mysql> SELECT CAST(1 AS UNSIGNED) - 2.0; -> -1.0
若你在一个算术运算中使用了一个字符串,它会被转化为一个浮点数。