web-dev-qa-db-ja.com

SQL Serverでの電話番号のフォーマット

SQL Server 2008を使用していて、SQL Server 2012専用のこのソリューションを見つけました-SQL Server 2008で電話番号をフォーマットするのと同じことは何ですか?

FORMAT([PhoneField],'###-###-####')
1
RashidInman

あなたのためにそれを行う関数はありません。電話番号を文字列としてキャストし、パーツを解析してハイフンを追加できます

declare @phone int
set @phone = '1232223333'
select SUBSTRING(cast(@phone as varchar(10)),1,3)+'-'+SUBSTRING(cast(@phone as varchar(10)),4,3)+'-'+SUBSTRING(cast(@phone as varchar(10)),7,4)
3
Bob Klimes

[PhoneField]が「1234567890」のように10桁であると仮定すると、STUFFを使用して適切な値を入力できます。

select STUFF(STUFF('1234567890',7,0,'-'),4,0,'-');

ただし、これは10桁の回答の電話番号のフォーマットにのみ応答することに注意してください。国際的にダイヤルされた番号を使用している場合は、処理する必要のあるさまざまな形式の電話番号を調査する必要があります。

参照: https://en.wikipedia.org/wiki/National_conventions_for_writing_telephone_numbers

6
RLF