PostgreSQL 8.1 轟動發佈,我也打算將原來使用 SQL Server 的一些應用遷移到 PostgreSQL 上,首先須要遷移的是表,那麼這就必需要先搞清楚這兩個數據庫中的數據類型的映射關係。查了下 PostgreSQL 文檔特製做以下對應表格,以饗各位。數據庫
注意:PostgreSQL 中的 money(貨幣)數據類型如今已經廢棄,用 numeric 或 decimal 以及和 to_char 函數一塊兒使用就能夠取代它。數組
SQL Server 中的 datetime、smalldatetime 數據類型均包含日期和時間部分,區別只在於精度不一樣。其對應於 PostgreSQL 中的 timestamp 類型(包含日期和時間)。在 PostgreSQL 中若是隻須要日期部分,則能夠使用 date 類型,而只須要時間部分則可以使用 time 類型。函數
PostgreSQL 中的 bytea(n) 始終爲變長的二進制字節數組,至關於 SQL Server 中的 varbinary(n),若是沒有指定 bytea 的最大字節數則表示爲不限長度的變長字節數組,至關於 SQL Server 中的 image 數據類型。編碼
PostgreSQL 中的字符類型沒有像 SQL Server 中有對應的本地文本類型和國際化文本類型的兩種文本數據類型的區別,存儲在 PostgreSQL 中的文本類型的數據是否國際化仍是本地化取決於數據庫的文本編碼設置。
爲了保證數據存儲的國際化,建議將數據庫的文本編碼方式設置爲 UTF-8 或者 Unicode,以確保存儲的文本可被不一樣地區和文化下的用戶查看和存儲。code
對於 GUID 類型的數據,在 PostgreSQL 中能夠使用 bytea(16) 來保存,可用字節數組函數來對其進行比較等操做。圖片