本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
CONVERT 函数
与一样CAST 函数,CONVERT 函数将一种数据类型转换为另一种兼容的数据类型。例如,您可以将字符串转换为日期,或将数值类型转换为字符串。CONVERT 执行运行时转换,这意味着转换不会更改源表中值的数据类型。仅在查询上下文中对其进行更改。
某些数据类型需要使用 CONVERT 函数显式转换为其他数据类型。其他数据类型可进行隐式转换(作为另一个命令的一部分),无需使用 CAST 或 CONVERT。请参阅 类型兼容性和转换。
语法
CONVERT ( type, expression )
参数
- type
-
除了 VARBYTE 数据类型、BINARY 和 BINARY VARIANCY 数据类型之外,其他数据类型均受支持。
- expression
-
计算结果为一个或多个值的表达式,如列名称或文本。转换 null 值将返回 null。表达式不能包含空字符串或空字符串。
返回类型
CONVERT 返回 type 参数指定的数据类型。
注意
AWS Clean Rooms 如果您尝试执行有问题的转换(例如会丢失精度的十进制转换),则返回错误,如下所示:
SELECT CONVERT(decimal(2,1), 123.456);
或导致溢出的 INTEGER 转换:
SELECT CONVERT(smallint, 12345678);
示例
以下查询使用 CONVERT 函数将一些小数列转换为整数
SELECT CONVERT(integer, pricepaid) FROM sales WHERE salesid=100;
此示例将整数转换为字符串。
SELECT CONVERT(char(4), 2008);
在此示例中,当前日期和时间转换为可变字符数据类型:
SELECT CONVERT(VARCHAR(30), GETDATE());
getdate --------- 2023-02-02 04:31:16
此示例将 saletime 列仅转换只包括时间,删除每行中的日期。
SELECT CONVERT(time, saletime), salesid FROM sales order by salesid limit 10;
以下示例将可变字符数据转换为日期时间对象。
SELECT CONVERT(datetime, '2008-02-18 02:36:48') as mysaletime;