在PostgreSQL中做什么? [重复]

问题描述 投票:56回答:2

这个问题在这里已有答案:

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

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

这似乎是某种演员。什么是::在postgres什么时候应该使用?

我尝试了一些谷歌搜索和搜索Postgres文档::但没有得到很好的结果。 我尝试在Google中进行搜索:

  • postgres双结肠
  • postgres ::
  • ::

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

  • 双结肠
  • 双冒号演员
  • ::

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

postgresql syntax types casting typecast-operator
2个回答
61
投票

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

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

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

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


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章节的手册中。

更全面的答案:

© www.soinside.com 2019 - 2024. All rights reserved.