首页 > 解决方案 > 尝试将列数据类型 NVARCHAR 转换为 INT 时出现错误

问题描述

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

SELECT [phone], FORMAT(CAST(PHONE AS int),'(000)-000-0000)')
FROM Sales.Customers

标签: sql

解决方案


您的查询应该是这样的:

SELECT [phone], FORMAT(CAST(REPLACE([phone],'-','')AS INT), '(000)-000-0000)')
FROM Sales.Customers

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

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


推荐阅读