微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

PostgreSQL 与 SQL 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) 来保存,可用字节数组函数来对其进行比较等操作。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐