签到成功

知道了

CNDBA社区CNDBA社区

PostgreSQL 类型转换CAST / 双冒号(::) 说明

2022-12-17 22:36 2402 0 原创 PostgreSQL
作者: dave

1 类型转换CAST / 双冒号(::) 概念

在PG 的SQL中,会经常看到:: 的语法, "::" 符号其实是一个显示的类型转换符,作用等同于CAST。

官网的说明如下:http://www.cndba.cn/dave/article/116402

https://www.postgresql.org/docs/current/sql-createcast.html

http://www.cndba.cn/dave/article/116402
http://www.cndba.cn/dave/article/116402

By default, a cast can be invoked only by an explicit cast request, that is an explicit CAST(x AS typename) or x::typename construct.http://www.cndba.cn/dave/article/116402

也就是说,可以使用::显示调用CAST,从而快速的一种数据类型的值转换为另一种数据类型。http://www.cndba.cn/dave/article/116402

2 使用示例

cndba=# select '2022'::int,'2022-DEC-17'::date;
 int4 |    date
------+------------
 2022 | 2022-12-17
(1 row)

以上语法使用等于与如下的CAST:

http://www.cndba.cn/dave/article/116402
http://www.cndba.cn/dave/article/116402
http://www.cndba.cn/dave/article/116402

cndba=# select CAST('2022' as int),CAST('2022-DEC-17' as date);
 int4 |    date
------+------------
 2022 | 2022-12-17
(1 row)

当然使用类型转换时,如果表达式不能转换为目标类型,则会触发错误:http://www.cndba.cn/dave/article/116402http://www.cndba.cn/dave/article/116402

cndba=# select '2022year'::int;
ERROR:  invalid input syntax for type integer: "2022year"
LINE 1: select '2022year'::int;

版权声明:本文为博主原创文章,未经博主允许不得转载。

用户评论
* 以下用户言论只代表其个人观点,不代表CNDBA社区的观点或立场
dave

dave

关注

人的一生应该是这样度过的:当他回首往事的时候,他不会因为虚度年华而悔恨,也不会因为碌碌无为而羞耻;这样,在临死的时候,他就能够说:“我的整个生命和全部精力,都已经献给世界上最壮丽的事业....."

  • 2261
    原创
  • 3
    翻译
  • 578
    转载
  • 191
    评论
  • 访问:7971663次
  • 积分:4346
  • 等级:核心会员
  • 排名:第1名
精华文章
    最新问题
    查看更多+
    热门文章
      热门用户
      推荐用户
        Copyright © 2016 All Rights Reserved. Powered by CNDBA · 皖ICP备2022006297号-1·

        QQ交流群

        注册联系QQ