首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >尝试将列数据类型NVARCHAR转换为INT时出现错误

尝试将列数据类型NVARCHAR转换为INT时出现错误
EN

Stack Overflow用户
提问于 2019-03-03 09:18:28
回答 3查看 39关注 0票数 0

尝试将列数据类型NAVCHAR转换为INT接收错误时。下面是简单的代码:

代码语言:javascript
运行
复制
SELECT [phone], FORMAT(CAST(PHONE AS int),'(000)-000-0000)')
FROM Sales.Customers
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-03-03 10:00:39

您的查询应该是这样的:

代码语言:javascript
运行
复制
SELECT [phone], FORMAT(CAST(REPLACE([phone],'-','')AS INT), '(000)-000-0000)')
FROM Sales.Customers

因此,如果有无效的字符需要在中转换(在这种情况下,破折号是要替换的字符),它会将其替换为空白,然后将其格式化为您想要的格式。

例如:'030-3456789‘这将变成(030)-345-6789

票数 3
EN

Stack Overflow用户

发布于 2019-03-03 09:26:52

看起来您有一些行,其中的电话号码存储为字符串,不能转换为int。要找出是哪一个,执行以下命令:

代码语言:javascript
运行
复制
SELECT *
FROM   Sales.Customers
WHERE  ISNUMERIC(phone) = 0;

HTH

票数 0
EN

Stack Overflow用户

发布于 2019-03-03 11:17:22

我建议使用TRY_CAST()

代码语言:javascript
运行
复制
SELECT [phone],
       FORMAT(TRY_CAST(PHONE AS int), '(000)-000-0000)')
FROM Sales.Customers;

如果值不能转换,则返回NULL --这总比得到一个错误要好。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54964700

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档