PostgreSQL:我想知道“ cast”的区别

时间:2018-08-30 01:28:53

标签: sql postgresql casting

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

mssql查询是

CONVERT(VARCHAR, column)

我知道postgresql强制转换是两种方法。

1。

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

有什么区别?

可以使用第二种方法吗?

1 个答案:

答案 0 :(得分:1)

Quote from the manual

  

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

  CAST ( expression AS type )
  expression::type
     

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

(重点是我的)

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


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

  

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

typename ( expression )

但是不建议您这样做,因为手册上写着:“ 显然,这不是便携式应用程序应该依赖的东西