函数说明
CAST(expr AS type), CONVERT(expr,type), CONVERT(expr USING transcoding_name)CAST()和 CONVERT()函数可以用于将一个类型的数值转换到另一个类型。
- type 可以是下列值之一:
- CHAR、 DATE、 DATETIME、 DECIMAL、 TIME、 NUMERIC、 INT、SIGNED INT、 SIGNED。
- CAST()和 CONVERT(…USING…)是标准的 SQL 语法。
- CAST(str AS BINARY)等价于 BINARY str。
- CAST(expr AS CHAR)把表达式看作是默认字符集中的字符串。
注意:
使用 CAST()函数改变列类型为 DATE, DATETIME 或 TIME,只是标识此列,使其变为一个指定的数据类型,而不是改变列的值。
CAST()的最终执行结果将会转化为正确的列类型。
示例
- 示例 1:将 NOW()转换为 DATE 类型。
gbase> SELECT CAST(NOW() AS DATE) FROM t;
+---------------------+
| CAST(NOW() AS DATE) |
+---------------------+
| 2013-10-17 |
+---------------------+
1 row in set
- 示例 2:字符串和数字类型的转换是隐式操作,用户使用时只要把字符串值当做一个数字即可。
gbase> SELECT 1+'1' FROM t;
+-------+
| 1+'1' |
+-------+
| 2 |
+-------+
1 row in set
- 示例 3: CAST(str AS BINARY)等价于 BINARY str。
gbase> SELECT CAST('a' AS BINARY) = 'a ' FROM t;
+----------------------------+
| CAST('a' AS BINARY) = 'a ' |
+----------------------------+
| 0 |
+----------------------------+
1 row in set
gbase> SELECT BINARY 'a' = 'a ' FROM t;
+-------------------+
| BINARY 'a' = 'a ' |
+-------------------+
| 0 |
+-------------------+
1 row in set