gpt4 book ai didi

sql-server - 将存储为文本数据类型的数字转换为 int

转载 作者:行者123 更新时间:2023-12-02 14:23:00 25 4
gpt4 key购买 nike

我有一个导入结果的数据库。数据库是可交付的,我没有自己进行导入,也无法访问原始数据来自己进行导入。也就是说,有一个整数值被导入到文本数据类型中。所有存储的值都是有效整数。我不断得到:

Explicit conversion from data type text to int is not allowed.

如果我尝试更改表中的字段数据类型。我还在表中创建了一个新的 INT 字段,并尝试根据 TEXT 字段中的值更新它,但收到相同的错误。最后,我尝试创建一个新表并尝试插入旧值,但无法成功转换或转换为 int。

最佳答案

这似乎有效:CONVERT(INT, CONVERT(VARCHAR(MAX),myText))

编辑:

我不完全确定内部转换的最佳选择是什么...选择 VARCHAR(N)N > 10VARCHAR (MAX) 的优点是不通过截断来防止溢出(假设在这种情况下溢出是首选行为)。

此外,转换为 INT 似乎将前导空格视为零。因此 VARCHAR(MAX) 减少了错误地获取零的机会。例如:

CREATE TABLE #foo ( bar TEXT )

INSERT INTO #foo
VALUES (' 10')

SELECT CONVERT (INT, CONVERT(VARCHAR(MAX),bar)) FROM #foo -- 10
SELECT CONVERT (INT, CONVERT(VARCHAR(10),bar)) FROM #foo -- 0

可能最好的办法是进行一些验证,以确保输入满足您的要求。

关于sql-server - 将存储为文本数据类型的数字转换为 int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15346002/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com