Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.
返回转换为提供的数据类型的表达式的值。
CAST( expression AS datatype )
expression 要转换的表达式。
datatype 目标数据类型。
取决于所请求的数据类型。
如果不指示字符串类型的长度,则选择适当的长度。如果没有为 DECIMAL 转换指定精度和标度,将会选择缺省值。建议您在 CAST 函数中显式指出精度和标度。
能否转换取决于转换中使用的值。原始数据类型中的值必须与新数据类型兼容,才能避免产生转换错误。
使用以下图表可确定是否支持转换:
要在 VARBINARY 与 UNIQUEIDENTIFIER 之间进行转换,VARBINARY 值的长度必须为 16 字节。
要在 NUMERIC 与 VARBINARY 之间进行转换,NUMERIC 源必须具有一个也可作为 BIGINT 进行转换的值。
要从 VARCHAR 转换为 ST_GEOMETRY,VARCHAR 源必须以 WKT 或 EWKT 格式表示有效几何。
要从 VARBINARY 转换为 ST_GEOMETRY,VARBINARY 源必须以 WKB 格式表示有效几何。
如果从采用 WKB 或 WKT 格式的源转换为 ST_GEOMETRY,则向 ST_GEOMETRY 值指派 SRID = 0。从 ST_GEOMETRY 进行转换时,VARCHAR 值采用 EWKT 格式,而 VARBINARY 值采用 WKB 格式。
HEXTOINT 和 INTTOHEX 函数可用于在十六进制值与其它值之间相互转换。有关使用这些函数的详细信息,请参见转换至/自十六进制值。
以下函数确保字符串被用作日期:
SELECT CAST( '2000-10-31' AS DATE );
计算表达式 1 + 2 的值,并将结果转换为单字符字符串。
1 + 2
SELECT CAST( 1 + 2 AS CHAR );
可使用 CAST 函数缩短字符串长度:
SELECT CAST ( 'Surname' AS CHAR(5) );
VARCHAR 与 ST_GEOMETRY 之间的转换通常是隐式转换。例如,以下语句使用 ST_POINT 函数和 VARCHAR 向 ST_GEOMETRY 列添加值。各个值被隐式转换为与表列一致的 ST_GEOMETRY 数据类型,但结果仍显示为 VARCHAR。
INSERT INTO T1 VALUES (2, ST_POINT(1,2,0), 'SRID=2163;Point(1 2)');