首页 > 解决方案 > PostgreSQL:我想知道'cast'的区别

问题描述

我尝试将 mssql 查询转换为 postgresql 查询。

mssql 查询是

CONVERT(VARCHAR, column)

我知道 postgresql cast 有两种方式。

1.

CAST(column as VARCHAR)
  1. 列::VARCHAR

有什么不同?

使用第二种方法可以吗?

标签: sqlpostgresqlcasting

解决方案


从手册中引用

PostgreSQL 接受两种等效的类型转换语法:

  CAST ( expression AS type )
  expression::type

CAST 语法符合 SQL;:: 的语法是 PostgreSQL 的历史用法。

(强调我的)

所以两者都做同样的事情,cast()作为标准 SQL,::作为 Postgres 特定的。


请注意,还有第三种投射方式(如手册中所述)

也可以使用类似函数的语法来指定类型转换:

typename ( expression )

但是不推荐,因为手册说:“显然,这不是可移植应用程序应该依赖的东西


推荐阅读