PostgreSQLSQL Server数据库中的数据类型的映射关系

Posted 在途中#

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PostgreSQLSQL Server数据库中的数据类型的映射关系相关的知识,希望对你有一定的参考价值。

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,以确保存储的文本可被不同地区和文化下的用户查看和存储。

    • 对于 GUID 类型的数据,在 PostgreSQL 中可以使用 bytea(16) 来保存,可用字节数组函数来对其进行比较等操作。


以上是关于PostgreSQLSQL Server数据库中的数据类型的映射关系的主要内容,如果未能解决你的问题,请参考以下文章

PostgreSQL SQL 语句生成自定义 blob 存储表

它是 PostgreSQL SQL 引擎的错误吗?如何避免(解决方法)它?

以函数为值执行 \set 命令

如何使用sql server数据库中的标量值函数

Tableau Server 中的直接 SQL Server 连接,业务用户没有数据库的读取权限

在 SQL Server Management Studio 中更改 SQL Server 数据库中的列属性