【发布时间】:2021-05-21 04:03:47
【问题描述】:
我坚持将varchar 列UserID 转换为INT。我知道,请不要问为什么这个 UserID 列最初没有创建为 INT,说来话长。
所以我尝试了这个,但它不起作用。并给我一个错误:
select CAST(userID AS int) from audit
错误:
转换 varchar 值时转换失败 '1581.................................................. ..................................................... ....................' 数据类型 int。
我做了select len(userID) from audit,它返回 128 个字符,不是空格。
我尝试检测 ID 号和 ASCII 值 = 0 之后的那些尾随的 ASCII 字符。
我也试过LTRIM,RTRIM,把char(0)换成'',但是还是不行。
当我像下面这样告诉固定数量的字符时,它起作用的唯一方法是,UserID 并不总是 4 个字符。
select CAST(LEFT(userID, 4) AS int) from audit
【问题讨论】:
-
在表中 UserID 列只有整数值或任何 Varchar 值。例如:像这样的 122 或像这样的 122Adf...?
-
UserID 列只有整数值。谢谢!
标签: sql-server