首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Postgres数据类型声明和类型,双Colon和非Colon的区别是什么

Postgres数据类型声明和类型,双Colon和非Colon的区别是什么
EN

Stack Overflow用户
提问于 2019-10-11 01:57:10
回答 1查看 207关注 0票数 2

主要问题

我想知道使用双分号::声明类型与在Postgres中不使用::有什么区别。

示例

代码语言:javascript
复制
INTERVAL '1 day'
-- vs
'1 day'::INTERVAL

还有很多问题..。

  • ::型铸件吗?就像将字符串转换到INTERVAL.
  • What一样,您是在不使用::的情况下调用第一个示例,还是不使用::来定义该数据类型?
  • 是否对另一个有任何好处?
  • 是在另一个之前引入的?
  • 有速度效益吗?
  • 是一种标准化的方法,在community?
  • Is中优于另一个?H 220H 121这种方法对Postgres是唯一的,还是同样适用于SQL?H 222F 223

很抱歉有这么多问题!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-11 02:03:51

我可能会将INTERVAL '1 day'称为区间文字。这意味着,在没有任何强制转换的情况下,它表示一个文本Postgres INTERVAL值。另一方面,'1 day'::INTERVAL实际上是文本1 day的强制转换,以使其成为INTERVAL值。

::转换语法不是ANSI标准的一部分,而是特定于Postgres的。请注意,CAST('1 day' AS INTERVAL)与使用双冒号'1 day'::INTERVAL语法大致相同。

如果您担心有一天可能会将Postgres代码移植到另一个数据库,那么您可能会坚持使用CAST() over ::,后者在大多数其他数据库中都是支持的。

就性能而言,INTERVAL '1 day'不要求Postgres执行任何显式强制转换操作,而CAST::则需要显式强制转换。可能会有一些小的性能差异。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58333259

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档