2013-10-28 24 views
0

您可以在postgreSQL查詢中格式化電話號碼嗎?我有一個電話號碼欄。電話號碼保持如下:1234567890.我想知道postgres是否會格式化爲(123)456-7890。我可以查詢外做到這一點,我在使用PHP,但它會很好,如果我能有查詢的一樣(123)456-7890在postresql查詢中格式化電話號碼

+0

因此,它被存儲爲一個數字,而不是一個字符串,是否正確? –

+0

是的,它是號碼 –

+3

嗯,電話號碼實際上不是數字,它們真的是字符串,恰好是由數字字符組成。首先修復你的模式。你需要處理國際號碼還是北美號碼?什麼是擴展? –

回答

0

輸出使用SUBSTRING功能

是這樣的:

SELECT 
'(' || SUBSTRING((PhoneNumber, 1, 3) + ') ' || SUBSTRING(PhoneNumber, 4,3) || '-' || SUBSTRING((PhoneNumber,7,4) 
+0

我不認爲你可以通過使用'+' –

+0

在postgres中追加字符串。而不是+ –

3

這會爲你工作:

SELECT 
    '(' || SUBSTRING(CAST(NUMBER AS VARCHAR) FROM 1 FOR 3) || ') ' 
|| SUBSTRING(CAST(NUMBER AS VARCHAR) FROM 4 FOR 3) || '-' 
|| SUBSTRING(CAST(NUMBER AS VARCHAR) FROM 7 FOR LENGTH(CAST(NUMBER AS VARCHAR))) 
FROM 
    YOURTABLE 

而且,這裏是一個SQLFiddle

+0

非常感謝 –

+0

@Kyzer如果你找到了答案,永遠不要忘記將它作爲正確的答案,以便其他人可以輕鬆地找到答案。 –