在PostgreSQL中做什么?

时间:2013-03-21 01:06:58

标签: postgresql syntax types casting typecast-operator

我在各种各样的地方看过::涉及我在网上看过的postgres代码。例如:

SELECT '{apple,cherry apple, avocado}'::text[];

这似乎是某种演员。 postgres中的::究竟是什么?何时使用?

我尝试了一些谷歌搜索并搜索Postgres文档::,但没有取得好成绩。
我尝试在Google中进行搜索:

  • postgres double colon
  • postgres ::
  • ::

我在postgres文档搜索按钮中尝试了以下搜索

  • 双冒号
  • 双冒号
  • ::

在SO上询问几乎令人尴尬,但我认为Google希望将来能够为其他人看到这个答案。

2 个答案:

答案 0 :(得分:56)

类型转换指定从一种数据类型到另一种数据类型的转换。

PostgreSQL接受两种类型转换的等效语法,即PostgreSQL特定的value::type和SQL标准CAST(value AS type)

在这种特定情况下,'{apple,cherry apple, avocado}'::text[];采用字符串文字{apple,cherry apple, avocado}并告诉PostgreSQL将其解释为text数组。

有关详细信息,请参阅SQL expressionsarrays上的文档。

答案 1 :(得分:8)

What @PSR and @Craig wrote
另外,还有两种语法变体

1. type value

此表单仅转换常量(字符串文字)。喜欢在:

SELECT date '2013-03-21';

Constants of Other Types一章的手册中有更多内容。

2. type(value)

这是类似函数的语法。仅适用于名称作为函数名称有效的类型。喜欢在:

SELECT date(date_as_text_col) FROM tbl;

Type Casts一章的手册中有更多内容。

更全面的回答: