在 SQL Server 中格式化电话号码

Ras*_*man 1 sql-server-2008 sql-server t-sql

我正在使用 SQL Server 2008,我发现此解决方案仅适用于 SQL Server 2012 - 在 SQL Server 2008 中格式化电话号码的等效方法是什么?

FORMAT([PhoneField],'###-###-####')
Run Code Online (Sandbox Code Playgroud)

RLF*_*RLF 6

假设 [PhoneField] 是 10 位数字,例如“1234567890”,那么您可以使用 STUFF 将正确的值放入。例如

select STUFF(STUFF('1234567890',7,0,'-'),4,0,'-');
Run Code Online (Sandbox Code Playgroud)

但请注意,这只能回答格式化 10 位答案的电话号码。如果您使用的是国际拨号号码,则需要调查您可能需要处理的各种形式的电话号码。

请参阅:https : //en.wikipedia.org/wiki/National_conventions_for_writing_telephone_numbers