转换字符数据

在将字符表达式转换为不同大小的字符数据类型时,新数据类型的值太长将被截断。

当将某个字符表达式转换为不同数据类型或大小的字符表达式时(如从 char(5) 转换为 varchar(5),或从 char(20) 转换为 char(15)),为转换的值指派输入值的排序规则。当将非字符表达式转换为字符数据类型,给转换的值指派当前数据库的默认排序规则。在两种情况中,都可以使用 COLLATE 子句指派特定的排序规则。

说明  代码页转换适用于 charvarchar 数据类型,但不适用于 text 数据类型。与 Microsoft® SQL Server™ 以前的版本一样,不报告代码页转换期间的数据丢失。

转换为近似的 numeric 数据类型的字符表达式包括可选的指数符号 [在 (+) 号或 (-) 号之后紧跟一个大写或小写的字母 E 和一个数字]。

转换为精确的 numeric 数据类型的字符表达式必须包含数字、小数点和可选的加号 (+) 或减号 (-)。将忽略前导空格。逗号分隔符(如 123,456.00 中的千分隔符)在字符串中禁用。

转换为 moneysmallmoney 数据类型的字符表达式还包括可选的小数点和美元符号 ($)。可以使用逗号分隔符(如在 $123,456.00 中)。

此示例说明如何转换数据以进行显示。此示例在执行字符串比较前将 sales 数据转换为字符数据,同时将当前日期转换为样式 3,即 dd/mm/yy。

USE pubs
GO
SELECT title,
   CAST(ytd_sales AS CHAR(12)),
   CAST(GETDATE() AS CHAR(12))
FROM titles
WHERE CAST(ytd_sales AS CHAR(20) ) LIKE '1%'
GO

此示例将 uniqueidentifier 值转换为 char 数据类型。

DECLARE @myid uniqueidentifier
SET @myid = NEWID()
SELECT CONVERT(char(255), @myid) AS 'Char'
GO

此示例将当前日期转换为样式 3,即 dd/mm/yy。

SELECT CONVERT(char(12), GETDATE(), 3)
GO

请参见

CAST 和 CONVERT

数据类型