在SQL Server中转换数据类型
我需要更改一些数据类型。我尝试过使用在SQL Server中转换数据类型,sql,sql-server,type-conversion,Sql,Sql Server,Type Conversion,我需要更改一些数据类型。我尝试过使用CAST关键字,但它无法解决问题。关于如何用CAST语句重写这两行有什么建议吗 从VarChar(100)强制转换到VarChar(20)时,可能会发生数据丢失 代码: 从NVarChar(512)转换到NVarChar时,可能会发生数据丢失 代码: 我尝试执行以下操作,但仍然产生错误: CAST((myVariable) as nvarchar) CAST用于在数据类型之间进行转换。听起来更像是应该使用LEFT: SELECT TOP 1 @variabl
CAST
关键字,但它无法解决问题。关于如何用CAST
语句重写这两行有什么建议吗
VarChar(100)
强制转换到VarChar(20)
时,可能会发生数据丢失NVarChar(512)
转换到NVarChar
时,可能会发生数据丢失CAST((myVariable) as nvarchar)
CAST
用于在数据类型之间进行转换。听起来更像是应该使用LEFT
:
SELECT TOP 1 @variableId = LEFT(variableId,20)
FROM @tempTable
这不会给您任何警告,因为系统假定您已经知道将丢失正确的80个字符。对于使用
CONVERT
而不是CAST
:
CONVERT(nvarchar, myVariable)
是有效的语法,并且:
CONVERT(varchar(20), myVariable)
但是为了获取字符串的一部分,我们使用如下函数:
返回字符、二进制、文本或图像表达式的一部分。子字符串(值表达式、开始表达式、长度表达式)
返回具有指定字符数的字符串的左侧部分。LEFT(字符表达式、整数表达式)
返回具有指定字符数的字符串的右侧部分RIGHT(字符表达式、整数表达式)
CONVERT(nvarchar, myVariable)
CONVERT(varchar(20), myVariable)