三种数据类型转换方法:
1 格式化函数
-
把时间戳转换成字符串 to_char(current_timestamp,‘HH12:MI:SS’)
-
把间隔转换成字符串 to_char(interval’15h2m12s’,‘HH24:MI:SS’)
-
把整数转换成字符串 to_char(125,‘999’)
-
把数字转换成字符串 to_char(-125.8,‘999D99S’)
-
把字符串转换成日期 to_date(‘05Dec2000’,‘DDMonYYYY’)
-
把字符串转换成数字 to_number(‘12,8888’,‘99G999D9’)
-
把字符串转换成时间戳 to_timestamp(‘05 Dec 2000’,‘DD Mon yyyy’)
您可以使用命令验证:如:把整数转换成字符串
select to_char(125,'999');
2 通过CAST函数进行转换
把varchar字符类型转换成text类型,如下所示:
SELECT CAST(varchar'123' as text);
把varchar字符类型转换成int4类型,如下所示:
SELECT CAST(varchar'123' as int4 );
3 通过::操作符进行转换
转换成int4或numeric类型:
select 1::int4,3/2::numeric;
另一个例子,通过SQL查询给定表的字段名称,先根据表名在系统表pg_class找到表的OID,其中OID为隐藏的系统宇段:
select oid,relname from pg_class where relname='address';
之后根据test_json1 表的OID, 在系统表pg_attribute中根据attrelid (即表的OID)找到表的字段,如下所示:
SELECT attname FROM pg_attribute WHERE attrelid='49160' AND attnum>0;
上述操作需通过两步完成,但通过类型转换可一步到位, 如下所示:
select attname from pg_attribute where attrelid='address'::regclass and attnum >0;
第一种方法兼容性相对较好,第三种方法用法简捷。
最后修改时间:2025-03-12 11:20:24
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




