网络
虚拟私有云 VPC
弹性公网IP EIP
弹性负载均衡 ELB
NAT网关 NAT
云专线 DC
虚拟专用网络 VPN
云连接 CC
VPC终端节点 VPCEP
企业路由器 ER
企业交换机 ESW
全球加速 GA
云原生应用网络 ANC
人工智能
AI开发平台ModelArts
盘古大模型 PanguLargeModels
图引擎服务 GES
AI科学计算服务
自动驾驶云服务 Octopus
图像识别 Image
文字识别 OCR
自然语言处理 NLP
内容审核 Moderation
图像搜索 ImageSearch
企业级AI应用开发专业套件 ModelArts Pro
人脸识别服务 FRS
对话机器人服务 CBS
语音交互服务 SIS
人证核身服务 IVS
视频智能分析服务 VIAS
城市智能体
华为HiLens
开发与运维
软件开发生产线 CodeArts
需求管理 CodeArts Req
流水线 CodeArts Pipeline
代码检查 CodeArts Check
编译构建 CodeArts Build
部署 CodeArts Deploy
测试计划 CodeArts TestPlan
制品仓库 CodeArts Artifact
移动应用测试 MobileAPPTest
CodeArts IDE Online
开源镜像站 Mirrors
性能测试 CodeArts PerfTest
应用管理与运维平台 ServiceStage
云应用引擎 CAE
开源治理服务 CodeArts Governance
华为云Astro轻应用
CodeArts IDE
Astro工作流 AstroFlow
代码托管 CodeArts Repo
漏洞管理服务 CodeArts Inspector
联接 CodeArtsLink
软件建模 CodeArts Modeling
Astro企业应用 AstroPro
CodeArts盘古助手
华为云Astro大屏应用
安全与合规
安全技术与应用
Web应用防火墙 WAF
企业主机安全 HSS
云防火墙 CFW
安全云脑 SecMaster
DDoS防护 AAD
数据加密服务 DEW
数据库安全服务 DBSS
云堡垒机 CBH
数据安全中心 DSC
云证书管理服务 CCM
认证测试中心 CTC
边缘安全 EdgeSec
专属云
专属计算集群 DCC
云化转型
云架构中心
云采用框架
工业软件
工业数字模型驱动引擎
硬件开发工具链平台云服务
工业数据转换引擎云服务
容器
云容器引擎 CCE
云容器实例 CCI
容器镜像服务 SWR
云原生服务中心 OSC
应用服务网格 ASM
华为云UCS
大数据
MapReduce服务 MRS
数据湖探索 DLI
数据仓库服务 GaussDB(DWS)
云搜索服务 CSS
数据治理中心 DataArts Studio
表格存储服务 CloudTable
可信智能计算服务 TICS
数据接入服务 DIS
湖仓构建 LakeFormation
智能数据洞察 DataArts Insight
数智融合计算服务 DataArtsFabric
推荐系统 RES
数据可视化 DLV
企业应用
域名注册服务 Domains
云解析服务 DNS
企业门户 EWP
ICP备案
商标注册
华为云WeLink
华为云会议 Meeting
隐私保护通话 PrivateNumber
语音通话 VoiceCall
消息&短信 MSGSMS
云管理网络
SD-WAN 云服务
边缘数据中心管理 EDCM
云桌面 Workspace
应用与数据集成平台 ROMA Connect
ROMA资产中心 ROMA Exchange
政企自服务管理 ESM
管理与监管
统一身份认证服务 IAM
消息通知服务 SMN
云监控服务 CES
应用运维管理 AOM
应用性能管理 APM
云日志服务 LTS
云审计服务 CTS
标签管理服务 TMS
配置审计 Config
应用身份管理服务 OneAccess
资源访问管理 RAM
组织 Organizations
资源编排服务 RFS
优化顾问 OA
IAM 身份中心
云运维中心 COC
资源治理中心 RGC
盘古Doer
解决方案
高性能计算 HPC
SAP
混合云灾备
开天工业工作台 MIW
解决方案工作台
数字化诊断治理专家服务
云生态
云商店
合作伙伴中心
华为云开发者学堂
华为云慧通差旅
计算
弹性云服务器 ECS
Flexus云服务
裸金属服务器 BMS
云手机服务器 CPH
专属主机 DeH
弹性伸缩 AS
镜像服务 IMS
函数工作流 FunctionGraph
云耀云服务器(旧版)
Huawei Cloud EulerOS
云化数据中心 CloudDC
网络
虚拟私有云 VPC
弹性公网IP EIP
弹性负载均衡 ELB
NAT网关 NAT
云专线 DC
虚拟专用网络 VPN
云连接 CC
VPC终端节点 VPCEP
企业路由器 ER
企业交换机 ESW
全球加速 GA
云原生应用网络 ANC
CDN与智能边缘
内容分发网络 CDN
智能边缘云 IEC
智能边缘平台 IEF
CloudPond云服务
人工智能
AI开发平台ModelArts
盘古大模型 PanguLargeModels
图引擎服务 GES
AI科学计算服务
自动驾驶云服务 Octopus
图像识别 Image
文字识别 OCR
自然语言处理 NLP
内容审核 Moderation
图像搜索 ImageSearch
企业级AI应用开发专业套件 ModelArts Pro
人脸识别服务 FRS
对话机器人服务 CBS
语音交互服务 SIS
人证核身服务 IVS
视频智能分析服务 VIAS
城市智能体
华为HiLens
IoT物联网
设备接入 IoTDA
全球SIM联接 GSL
IoT数据分析 IoTA
路网数字化服务 DRIS
IoT边缘 IoTEdge
设备发放 IoTDP
开发与运维
软件开发生产线 CodeArts
需求管理 CodeArts Req
流水线 CodeArts Pipeline
代码检查 CodeArts Check
编译构建 CodeArts Build
部署 CodeArts Deploy
测试计划 CodeArts TestPlan
制品仓库 CodeArts Artifact
移动应用测试 MobileAPPTest
CodeArts IDE Online
开源镜像站 Mirrors
性能测试 CodeArts PerfTest
应用管理与运维平台 ServiceStage
云应用引擎 CAE
开源治理服务 CodeArts Governance
华为云Astro轻应用
CodeArts IDE
Astro工作流 AstroFlow
代码托管 CodeArts Repo
漏洞管理服务 CodeArts Inspector
联接 CodeArtsLink
软件建模 CodeArts Modeling
Astro企业应用 AstroPro
CodeArts盘古助手
华为云Astro大屏应用
开天aPaaS
应用平台 AppStage
开天企业工作台 MSSE
开天集成工作台 MSSI
API中心 API Hub
云消息服务 KooMessage
交换数据空间 EDS
云地图服务 KooMap
云手机服务 KooPhone
组织成员账号 OrgID
云空间服务 KooDrive
安全与合规
安全技术与应用
Web应用防火墙 WAF
企业主机安全 HSS
云防火墙 CFW
安全云脑 SecMaster
DDoS防护 AAD
数据加密服务 DEW
数据库安全服务 DBSS
云堡垒机 CBH
数据安全中心 DSC
云证书管理服务 CCM
认证测试中心 CTC
边缘安全 EdgeSec
迁移
主机迁移服务 SMS
对象存储迁移服务 OMS
云数据迁移 CDM
迁移中心 MgC
专属云
专属计算集群 DCC
开发者工具
SDK开发指南
API签名指南
DevStar
华为云命令行工具服务 KooCLI
Huawei Cloud Toolkit
CodeArts API
云化转型
云架构中心
云采用框架
用户服务
账号中心
费用中心
成本中心
资源中心
企业管理
工单管理
客户运营能力
国际站常见问题
支持计划
专业服务
合作伙伴支持计划
我的凭证
华为云公共事业服务云平台
工业软件
工业数字模型驱动引擎
硬件开发工具链平台云服务
工业数据转换引擎云服务
存储
对象存储服务 OBS
云硬盘 EVS
云备份 CBR
高性能弹性文件服务 SFS Turbo
弹性文件服务 SFS
存储容灾服务 SDRS
弹性内存存储 EMS
云硬盘备份 VBS
云服务器备份 CSBS
数据快递服务 DES
云存储网关 CSG
专属分布式存储服务 DSS
数据工坊 DWR
地图数据 MapDS
键值存储服务 KVS
容器
云容器引擎 CCE
云容器实例 CCI
容器镜像服务 SWR
云原生服务中心 OSC
应用服务网格 ASM
华为云UCS
数据库
云数据库 RDS
数据复制服务 DRS
文档数据库服务 DDS
分布式数据库中间件 DDM
云数据库 GaussDB
云数据库 GeminiDB
数据管理服务 DAS
数据库和应用迁移 UGO
云数据库 TaurusDB
大数据
MapReduce服务 MRS
数据湖探索 DLI
数据仓库服务 GaussDB(DWS)
云搜索服务 CSS
数据治理中心 DataArts Studio
表格存储服务 CloudTable
可信智能计算服务 TICS
数据接入服务 DIS
湖仓构建 LakeFormation
智能数据洞察 DataArts Insight
数智融合计算服务 DataArtsFabric
推荐系统 RES
数据可视化 DLV
应用中间件
微服务引擎 CSE
分布式消息服务Kafka版
分布式消息服务RabbitMQ版
分布式消息服务RocketMQ版
API网关 APIG
分布式缓存服务 DCS
多活高可用服务 MAS
事件网格 EG
企业应用
域名注册服务 Domains
云解析服务 DNS
企业门户 EWP
ICP备案
商标注册
华为云WeLink
华为云会议 Meeting
隐私保护通话 PrivateNumber
语音通话 VoiceCall
消息&短信 MSGSMS
云管理网络
SD-WAN 云服务
边缘数据中心管理 EDCM
云桌面 Workspace
应用与数据集成平台 ROMA Connect
ROMA资产中心 ROMA Exchange
政企自服务管理 ESM
视频
实时音视频 SparkRTC
视频直播 Live
视频点播 VOD
媒体处理 MPC
视频接入服务 VIS
数字内容生产线 MetaStudio
管理与监管
统一身份认证服务 IAM
消息通知服务 SMN
云监控服务 CES
应用运维管理 AOM
应用性能管理 APM
云日志服务 LTS
云审计服务 CTS
标签管理服务 TMS
配置审计 Config
应用身份管理服务 OneAccess
资源访问管理 RAM
组织 Organizations
资源编排服务 RFS
优化顾问 OA
IAM 身份中心
云运维中心 COC
资源治理中心 RGC
盘古Doer
区块链
区块链服务 BCS
数字资产链 DAC
华为云区块链引擎服务 HBS
解决方案
高性能计算 HPC
SAP
混合云灾备
开天工业工作台 MIW
解决方案工作台
数字化诊断治理专家服务
价格
成本优化最佳实践
专属云商业逻辑
云生态
云商店
合作伙伴中心
华为云开发者学堂
华为云慧通差旅
其他
管理控制台
消息中心
产品价格详情
系统权限
客户关联华为云合作伙伴须知
公共问题
宽限期保留期
奖励推广计划
活动
云服务信任体系能力说明
本文导读

展开导读

类型转换函数

更新时间:2025-05-29 GMT+08:00
分享

cash_words(money)

描述:类型转换函数,将money转换为text。

示例:

1
2
3
4
5
gaussdb=# SELECT cash_words('1.23');
            cash_words
-----------------------------------
 One dollar and twenty three cents
(1 row)

convert(expr, type)

描述:类型转换函数,将expr转换成type指定的类型。

参数:第一个参数为一个任意值,第二个参数为类型名称。

返回值类型:返回值类型为输入的type类型。

示例:

1
2
3
4
5
gaussdb=# SELECT convert(12.5, text);
 text 
------
 12.5
(1 row)
说明:

此函数仅在MYSQL模式数据库中生效。

cast(x as y [DEFAULT z ON CONVERSION ERROR][,fmt])

描述:类型转换函数,将x转换成y指定的类型。当sql_compatibility = 'MYSQL'时,设置参数b_format_version = '5.7'、b_format_dev_version = 's1'后,若y是char类型,则该函数会将x转换成varchar类型。

参数:

  • x为该函数中待转换的数据,其类型和值需要支持转换为目标类型y。
  • DEFAULT z ON CONVERSION ERROR为可选参数,当尝试将x转换成y指定的类型失败时,则将z转换成y指定的类型。
  • fmt为可选参数,当y是以下数据类型时可以指定fmt参数:

    int1/int2/int4/int8/int16/float4/float8/numeric:则fmt的作用与to_number(expr [,fmt])函数相同;

    date/timestamp/timestamp with time zone:则fmt的作用与to_date(string [,fmt])/to_timestamp(string [,fmt]) /to_timestamp_tz(string [,fmt])函数相同。

示例:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
gaussdb=# SELECT cast('22-oct-1997' as timestamp);
      timestamp      
---------------------
 1997-10-22 00:00:00
(1 row)

gaussdb=# SELECT cast('22-ocX-1997' as timestamp DEFAULT '22-oct-1997' ON CONVERSION ERROR, 'DD-Mon-YYYY');
      timestamp      
---------------------
 1997-10-22 00:00:00
(1 row)

gaussdb=# CREATE DATABASE gaussdb_m  WITH dbcompatibility  'MYSQL';
gaussdb=# \c gaussdb_m
-- 设置兼容版本控制参数
gaussdb_m=# SET b_format_version='5.7';
gaussdb_m=# SET b_format_dev_version='s1';
gaussdb_m=# SELECT cast('aaa' as char);
 varchar 
---------
 aaa
(1 row)
说明:

此函数在参数a_format_version值为10c且a_format_dev_version值为s1的情况下,支持DEFAULT z ON CONVERSION ERROR及fmt语法。

cast(x AS {SIGNED | UNSIGNED} [INT | INTEGER])

描述:类型转换函数,将x转换成BIGINT SIGNED或BIGINT UNSIGNED类型。

参数:x是该函数中待转换的数据,其类型和值需要支持转换为目标类型INT。

返回值类型:BIGINT SIGNED或BIGINT UNSIGNED

示例:

1
2
3
4
5
gaussdb=# SELECT CAST(12 AS UNSIGNED);
 uint8
-------
 12
(1 row)

hextoraw(text)

描述:将一个十六进制构成的字符串转换为raw类型。

返回值类型:raw

示例:

1
2
3
4
5
gaussdb=# SELECT hextoraw('7D');
 hextoraw 
----------
 7D
(1 row)

numtoday(numeric)

描述:将数字类型的值转换为指定格式的时间戳。

返回值类型:timestamp

示例:

1
2
3
4
5
gaussdb=# SELECT numtoday(2);
 numtoday
----------
 2 days
(1 row)

rawtohex(string)

描述:将一个二进制构成的字符串转换为十六进制的字符串。结果为输入字符的ACSII码,以十六进制表示。

返回值类型:varchar

示例:

1
2
3
4
5
gaussdb=# SELECT rawtohex('1234567');
    rawtohex    
----------------
 31323334353637
(1 row)

to_blob(raw)

描述:将RAW类型转成BLOB类型。

返回值类型:blob

示例:

1
2
3
4
5
gaussdb=# SELECT to_blob('0AADD343CDBBD'::RAW(10));
    to_blob    
----------------
 00AADD343CDBBD
(1 row)
说明:

在参数a_format_version值为10c且a_format_dev_version值为s2的情况下,支持to_blob函数。

to_bigint(varchar)

描述:将字符类型转换为bigint类型。

返回值类型:bigint

示例:

1
2
3
4
5
gaussdb=# SELECT to_bigint('123364545554455');
    to_bigint    
----------------
 123364545554455
(1 row)

to_binary_double(expr)

描述:将expr转换成float8类型的值。

参数:expr支持number、float4、float8数值类型,以及可以隐式转换为数值类型的字符串。

返回值类型:float8

示例:

1
2
3
4
5
gaussdb=# SELECT to_binary_double('12345678');
 to_binary_double 
------------------
         12345678
(1 row)
说明:

在参数a_format_version值为10c且a_format_dev_version值为s2的情况下,支持to_binary_double函数。

to_binary_double(expr, fmt)

描述:将expr经过指定的fmt匹配后转换成float8类型的数值

参数:expr/fmt支持char、nchar、varchar2、nvarchar2类型的字符串,expr还支持可以隐式转换为字符串类型的数值类型。

返回值类型:float8

示例:

1
2
3
4
5
gaussdb=# SELECT to_binary_double('1,2,3', '9,9,9');
 to_binary_double 
------------------
              123
(1 row)
说明:

在参数a_format_version值为10c且a_format_dev_version值为s2的情况下,支持to_binary_double函数。

to_binary_double(expr DEFAULT return_value ON CONVERSION ERROR)

描述:将expr转换成float8类型的值,若失败则返回默认值return_value。

参数:expr支持number、float4、float8数值类型,以及可以隐式转换为字符串的数值类型。当expr为非数值类型或非字符串类型时,则会报错。

返回值类型:float8

示例:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
gaussdb=# SELECT to_binary_double(1e2 DEFAULT 12 ON CONVERSION ERROR);
 to_binary_double 
------------------
              100
(1 row)

gaussdb=# SELECT to_binary_double('aa' DEFAULT 12 ON CONVERSION ERROR);
 to_binary_double 
------------------
               12
(1 row)
说明:

在参数a_format_version值为10c且a_format_dev_version值为s2的情况下,支持to_binary_double函数。

to_binary_double(expr DEFAULT return_value ON CONVERSION ERROR, fmt)

描述:将expr经过指定的fmt匹配后转换成float8类型的数值,若失败则返回默认值return_value。

参数:expr/fmt支持char、nchar、varchar2、nvarchar2类型的字符串,expr还支持可以隐式转换为字符串的数值类型。

返回类型:float8

示例:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
gaussdb=# SELECT to_binary_double('12-' DEFAULT 10 ON CONVERSION ERROR, '99S');
 to_binary_double 
------------------
              -12
(1 row)

gaussdb=# SELECT to_binary_double('aa-' DEFAULT 12 ON CONVERSION ERROR, '99S');
 to_binary_double 
------------------
               12
(1 row)
说明:

在参数a_format_version值为10c且a_format_dev_version值为s2的情况下,支持to_binary_double函数。

to_binary_float(expr)

描述:将expr转换成float4类型的值。

参数:expr支持number、float4、float8数值类型,以及可以隐式转换为数值类型的字符串。

返回值类型:float4

示例:

1
2
3
4
5
gaussdb=# SELECT to_binary_float('12345678');
 to_binary_float 
------------------
      1.23457e+07
(1 row)
说明:

在参数a_format_version值为10c且a_format_dev_version值为s2的情况下,支持to_binary_float函数。

to_binary_float(expr, fmt)

描述:将expr经过指定的fmt匹配后转换成float4类型的数值。

参数:expr/fmt支持char、nchar、varchar2、nvarchar2类型的字符串,expr还支持可以隐式转换为字符串类型的数值类型。

返回值类型:float4

示例:

1
2
3
4
5
gaussdb=# SELECT to_binary_float('1,2,3', '9,9,9');
 to_binary_float
------------------
              123
(1 row)
说明:

在参数a_format_version值为10c且a_format_dev_version值为s2的情况下,支持to_binary_float函数。

to_binary_float(expr DEFAULT return_value ON CONVERSION ERROR)

描述:将expr转换成float4类型的值,若失败则返回默认值return_value。

参数:expr支持number、float4、float8数值类型,以及可以隐式转换为字符串的数值类型,当expr为非数值类型或非字符串类型时,则会报错。

返回值类型:float4

示例:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
gaussdb=# SELECT to_binary_float(1e2 DEFAULT 12 ON CONVERSION ERROR);
 to_binary_float 
------------------
              100
(1 row)

gaussdb=# SELECT to_binary_float('aa' DEFAULT 12 ON CONVERSION ERROR);
 to_binary_float
------------------
               12
(1 row)
说明:

在参数a_format_version值为10c且a_format_dev_version值为s2的情况下,支持to_binary_float函数。

to_binary_float(expr DEFAULT return_value ON CONVERSION ERROR, fmt)

描述:将expr经过指定的fmt匹配后转换成float4类型的数值,若失败则返回默认值return_value。

参数:expr/fmt支持char、nchar、varchar2、nvarchar2类型的字符串,expr还支持可以隐式转换为字符串类型的数值类型。

返回类型:float4

示例:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
gaussdb=# SELECT to_binary_float('12-' DEFAULT 10 ON CONVERSION ERROR, '99S');
 to_binary_float
------------------
              -12
(1 row)

gaussdb=# SELECT to_binary_float('aa-' DEFAULT 12 ON CONVERSION ERROR, '99S');
 to_binary_float
------------------
               12
(1 row)
说明:

在参数a_format_version值为10c且a_format_dev_version值为s2的情况下,支持to_binary_float函数。

to_char(datetime/interval [, fmt])

描述:将一个DATE、TIMESTAMP、TIMESTAMP WITH TIME ZONE或者TIMESTAMP WITH LOCAL TIME ZONE类型的DATETIME或者INTERVAL值按照fmt(用于格式化日期和时间值的模板)指定的格式转换为TEXT类型。

  • fmt可以为以下几类:日期、时间、星期、季度和世纪。每类都可以有不同的模板,模板之间可以合理组合,常见的模板有:HH、MI、SS、YYYY、MM、DD,详情请参见表1
  • fmt可以有修饰词,常用的修饰词是FM,可以用来判断排查前导的零或尾随的空白。

返回值类型:text

示例:

1
2
3
4
5
gaussdb=# SELECT to_char(current_timestamp,'HH12:MI:SS');
 to_char  
----------
 10:19:26
(1 row)
1
2
3
4
5
gaussdb=# SELECT to_char(current_timestamp,'FMHH12:FMMI:FMSS');
 to_char  
----------
 10:19:46
(1 row)

to_char(double precision/real, text)

描述:将浮点类型的值转换为指定格式的字符串。

返回值类型:text

示例:

1
2
3
4
5
gaussdb=# SELECT to_char(125.8::real, '999D99');
 to_char 
---------
  125.80
(1 row)

to_char(numeric/smallint/integer/bigint/double precision/real[, fmt])

描述:将一个整型或者浮点类型的值转换为指定格式的字符串。

  • 可选参数fmt可以为以下几类:十进制字符、“分组”符、正负号和货币符号,每类都可以有不同的模板,模板之间可以合理组合,常见的模板有:9、0、,(千分隔符)、.(小数点),详情如表1 number类型fmt参数所示。
  • 模板可以有类似FM的修饰词,但FM不判断排查由模板0指定而输出的0。
  • 要将整型类型的值转换成对应16进制值的字符串,使用模板X或x。

返回值类型:text

示例:

1
2
3
4
5
gaussdb=# SELECT to_char(1485,'9,999');
 to_char 
---------
  1,485
(1 row)
1
2
3
4
5
gaussdb=# SELECT to_char( 1148.5,'9,999.999');
  to_char   
------------
  1,148.500
(1 row)
1
2
3
4
5
gaussdb=# SELECT to_char(148.5,'990999.909');
   to_char   
-------------
    0148.500
(1 row)
1
2
3
4
5
gaussdb=# SELECT to_char(123,'XXX');
 to_char 
---------
   7B
(1 row)
表1 number类型fmt参数

模式

描述

, (comma)

分组(千)分隔符。

. (period)

小数点。

$

指定位置输出$。

0

带前导零的值。

9

带有指定数值位数的值。

B

当整数部分是0时返回空格。

C

货币符号(使用区域设置)。

D

小数点(使用区域设置)。

EEEE

科学计数法。

G

分组分隔符(使用区域设置)。

L

货币符号(使用区域设置)。

MI

在指明的位置的负号(如果数字<0)。

PR

尖括号内负值。

RN

罗马数字(输入在1和3999之间)。

S

带符号的数值(使用区域设置)。

TM

标准数值与科学计数法。

TM9

标准数值与科学计数法。

TME

标准数值与科学计数法。

U

货币符号(使用区域设置)。

V

移动指定位(小数)。

PL

在指明的位置的正号(如果数字>0)。

SG

在指明的位置的正/负号。

TH或th

序数后缀。

说明:

此函数在参数a_format_version值为10c且a_format_dev_version值为s1的情况下,支持$、C、TM、TM9、TME、U格式。同时在该参数下,不支持TH、PL、SG格式的fmt。

to_char(interval, text)

描述:将时间间隔类型的值转换为指定格式的字符串。

返回值类型:text

示例:

1
2
3
4
5
gaussdb=# SELECT to_char(interval '15h 2m 12s', 'HH24:MI:SS');
 to_char
----------
 15:02:12
(1 row)

to_char(integer, text)

描述:将整数类型的值转换为指定格式的字符串。

返回值类型:text

示例:

1
2
3
4
5
gaussdb=# SELECT to_char(125, '999');
 to_char
---------
  125
(1 row)

to_char(set)

描述:将SET类型的值转换为字符串。分布式暂不支持SET数据类型。

返回值:text

to_char(numeric, text)

描述:将数字类型的值转换为指定格式的字符串。

返回值类型:text

示例:

1
2
3
4
5
gaussdb=# SELECT to_char(-125.8, '999D99S');
 to_char
---------
 125.80-
(1 row)

to_char(string)

描述:将CHAR、VARCHAR、VARCHAR2、CLOB类型转换为TEXT类型。如使用该函数对CLOB类型进行转换,且待转换CLOB类型的值超出目标类型的范围,则会报错。

返回值类型:text

示例:

1
2
3
4
5
gaussdb=# SELECT to_char('01110');
 to_char
---------
 01110
(1 row)

to_nvarchar2(numeric)

描述:转换为nvarchar2类型。

参数:numeric

返回值类型:nvarchar2

to_char(timestamp, text)

描述:将时间戳类型的值转换为指定格式的字符串。

返回值类型:text

示例:

1
2
3
4
5
gaussdb=# SELECT to_char(current_timestamp, 'HH12:MI:SS');
 to_char
----------
 10:55:59
(1 row)
说明:
  • 在参数a_format_version值为10c且a_format_dev_version值为s1的情况下,to_char函数会对错误的fmt报错。
  • 如果不是在兼容模式下,to_char函数对于错误的fmt会原样输出,如fmt为FF10,会匹配到FF1进行格式化输出,然后原样输出0。

to_nchar(datetime/interval [, fmt])

描述:将一个DATE、TIMESTAMP、TIMESTAMP WITH TIME ZONE或者TIMESTAMP WITH LOCAL TIME ZONE类型的DATETIME或者INTERVAL值按照fmt(用于格式化日期和时间值的模板)指定的格式转换为TEXT类型。

  • 可选参数fmt可以为以下几类:日期、时间、星期、季度和世纪。每类都可以有不同的模板,模板之间可以合理组合,常见的模板有:HH、MI、SS、YYYY、MM、DD,详情请参见8.6.8.5-表 用于日期/时间格式化的格式
  • 模板可以有修饰词,常用的修饰词是FM,可以用来判断排查前导的零或尾随的空白。

返回值类型:text

示例:

1
2
3
4
5
gaussdb=# SELECT to_nchar(current_timestamp,'HH12:MI:SS');
 to_nchar  
----------
 10:19:26
(1 row)
1
2
3
4
5
gaussdb=# SELECT to_nchar(current_timestamp,'FMHH12:FMMI:FMSS');
 to_nchar  
----------
 10:19:46
(1 row)

to_nchar(double precision/real, text)

描述:将浮点类型的值转换为指定格式的字符串。

返回值类型:text

示例:

1
2
3
4
5
gaussdb=# SELECT to_nchar(125.8::real, '999D99');
 to_nchar 
---------
  125.80
(1 row)

to_nchar(numeric/smallint/integer/bigint/double precision/real[, fmt])

描述:将一个整型或者浮点类型的值转换为指定格式的字符串。

  • 可选参数fmt可以为以下几类:十进制字符、“分组”符、正负号和货币符号,每类都可以有不同的模板,模板之间可以合理组合,常见的模板有:9、0、,(千分隔符)、.(小数点),详情请参见表1
  • 模板可以有类似FM的修饰词,但FM不判断排查由模板0指定而输出的0。
  • 要将整型类型的值转换成对应16进制值的字符串,使用模板X或x。

返回值类型:text

示例:

1
2
3
4
5
gaussdb=# SELECT to_nchar(1485,'9,999');
 to_nchar 
---------
  1,485
(1 row)
1
2
3
4
5
gaussdb=# SELECT to_nchar( 1148.5,'9,999.999');
  to_nchar   
------------
  1,148.500
(1 row)
1
2
3
4
5
gaussdb=# SELECT to_nchar(148.5,'990999.909');
   to_nchar   
-------------
    0148.500
(1 row)
1
2
3
4
5
gaussdb=# SELECT to_nchar(123,'XXX');
 to_nchar 
---------
   7B
(1 row)
说明:

此函数仅在ORA兼容模式中(即sql_compatibility='ORA')、且参数a_format_version值为10c和a_format_dev_version值为s2时生效。开启参数时支持$、C、TM、TM9、TME、U格式。同时在该参数下,不支持TH、PL、SG格式的fmt。

to_nchar(interval, text)

描述:将时间间隔类型的值转换为指定格式的字符串。

返回值类型:text

示例:

1
2
3
4
5
gaussdb=# SELECT to_nchar(interval '15h 2m 12s', 'HH24:MI:SS');
 to_nchar
----------
 15:02:12
(1 row)

to_nchar(integer, text)

描述:将整数类型的值转换为指定格式的字符串。

返回值类型:text

示例:

1
2
3
4
5
gaussdb=# SELECT to_nchar(125, '999');
 to_nchar
---------
  125
(1 row)

to_nchar(set)

描述:将SET类型的值转换为字符串。分布式暂不支持SET数据类型。

返回值:text

to_nchar(numeric, text)

描述:将数字类型的值转换为指定格式的字符串。

返回值类型:text

示例:

1
2
3
4
5
gaussdb=# SELECT to_nchar(-125.8, '999D99S');
 to_nchar
---------
 125.80-
(1 row)

to_nchar(string)

描述:将CHAR、VARCHAR、VARCHAR2、CLOB类型转换为TEXT类型。如使用该函数对CLOB类型进行转换,且待转换CLOB类型的值超出目标类型的范围,则会报错。

返回值类型:text

示例:

1
2
3
4
5
gaussdb=# SELECT to_nchar('01110');
 to_nchar
---------
 01110
(1 row)

to_nchar(timestamp, text)

描述:将时间戳类型的值转换为指定格式的字符串。

返回值类型:text

示例:

1
2
3
4
5
gaussdb=# SELECT to_nchar(current_timestamp, 'HH12:MI:SS');
 to_nchar
----------
 10:55:59
(1 row)

to_clob(char/nchar/varchar/nvarchar/varchar2/nvarchar2/text/raw)

描述:将RAW类型或者文本字符集类型CHAR、NCHAR、VARCHAR、VARCHAR2、NVARCHAR、NVARCHAR2、TEXT转成CLOB类型。

返回值类型:clob

示例:

1
2
3
4
5
gaussdb=# SELECT to_clob('ABCDEF'::RAW(10));
 to_clob 
---------
 ABCDEF
(1 row)
1
2
3
4
5
gaussdb=# SELECT to_clob('hello111'::CHAR(15));
 to_clob  
----------
 hello111
(1 row)
1
2
3
4
5
gaussdb=# SELECT to_clob('gauss123'::NCHAR(10));
 to_clob  
----------
 gauss123
(1 row)
1
2
3
4
5
gaussdb=# SELECT to_clob('gauss234'::VARCHAR(10));
 to_clob  
----------
 gauss234
(1 row)
1
2
3
4
5
gaussdb=# SELECT to_clob('gauss345'::VARCHAR2(10));
 to_clob  
----------
 gauss345
(1 row)
1
2
3
4
5
gaussdb=# SELECT to_clob('gauss456'::NVARCHAR2(10));
 to_clob  
----------
 gauss456
(1 row)
1
2
3
4
5
gaussdb=# SELECT to_clob('World222!'::TEXT);
  to_clob  
-----------
 World222!
(1 row)

to_date(text)

描述:将文本类型的值转换为指定格式的时间戳。

  • 格式一:无分隔符日期,如20150814,需要包括完整的年月日。
  • 格式二:带分隔符日期,如2014-08-14,分隔符可以是单个任意非数字字符。

返回值类型:timestamp without time zone

示例:

1
2
3
4
5
gaussdb=# SELECT to_date('2015-08-14');
       to_date
---------------------
 2015-08-14 00:00:00
(1 row)
说明:

在参数a_format_version值为10c且a_format_dev_version值为s1的情况下,nls_timestamp_format值为YYYY-MM-DD HH24:MI:SS。

to_date(text, text)

描述:将字符串类型的值转换为指定格式的日期。

返回值类型:timestamp without time zone

示例:

1
2
3
4
5
gaussdb=# SELECT to_date('05 Dec 2000', 'DD Mon YYYY');
       to_date
---------------------
 2000-12-05 00:00:00
(1 row)

to_date(text [DEFAULT return_value ON CONVERSION ERROR [, fmt]])

描述:将字符串text按fmt指定的格式转换成DATE类型的值。不指定fmt时,在参数a_format_version值为10c和a_format_dev_version值为s1的情况下,按参数nls_timestamp_format所指定的格式转换;若不指定参数a_format_version和a_format_dev_version,则按照固定fmt = 'yyyy-mm-dd hh24-mi-ss'进行转换。

参数:

  • text:任何计算结果为CHAR、VARCHAR2、NCHAR、NVARCHAR2、TEXT类型字符串的表达式。输入null,返回null。
  • DEFAULT return_value ON CONVERSION ERROR:可选参数,在参数a_format_version值为10c且a_format_dev_version值为s1的情况下,用于当text转换DATE类型失败时指定返回值return_value。return_value可以是表达式或者绑定的变量,需要能够转换为CHAR、VARCHAR2、NCHAR、NVARCHAR2、TEXT类型或者是null。return_value转换为DATE类型数据的方法与text转换为DATE类型数据相同,如果return_value转换为DATE类型数据失败,该函数报错。
  • fmt:可选参数。指定text的日期时间模型格式。缺省时,text需要符合默认的日期格式的要求。fmt指定为J时,text需要为整数。

返回值类型:timestamp without time zone

示例:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
gaussdb=# SELECT to_date('2015-08-14');
       to_date
---------------------
 2015-08-14 00:00:00
(1 row)
gaussdb=# SELECT to_date('05 Dec 2000', 'DD Mon YYYY');
       to_date
---------------------
 2000-12-05 00:00:00
(1 row)
gaussdb=# SET a_format_version='10c';
SET
gaussdb=# SET a_format_dev_version='s1';
SET
gaussdb=# SHOW nls_timestamp_format;
    nls_timestamp_format    
----------------------------
 DD-Mon-YYYY HH:MI:SS.FF AM
(1 row)
gaussdb=# SELECT to_date('12-jan-2022' DEFAULT '12-apr-2022' ON CONVERSION ERROR);
       to_date       
---------------------
 2022-01-12 00:00:00
(1 row)
gaussdb=# SELECT to_date('12-ja-2022' DEFAULT '12-apr-2022' ON CONVERSION ERROR);
       to_date       
---------------------
 2022-04-12 00:00:00
(1 row)
gaussdb=# SELECT to_date('2022-12-12' DEFAULT '2022-01-01' ON CONVERSION ERROR, 'yyyy-mm-dd');
       to_date       
---------------------
 2022-12-12 00:00:00
(1 row)
说明:

在参数a_format_version值为10c和a_format_dev_version值为s1的情况下,年份的输入超过9999时,系统可能不报错。如to_date('99999-12-12', 'yyyy-mm-dd hh24:mi:ss')结果为9999-09-12 12:00:00。年输入超过9999时,超过4位后面的数字会解析为下一个fmt,to_timestamp同样有此限制。

to_number(expr [, fmt])

描述:将expr按指定格式转换为一个NUMBER类型的值。类型转换格式请参见表4 数值格式化的模板模式。转换十六进制字符串为十进制数字时,最多支持16个字节的十六进制字符串转换为无符号数;同时格式字符串中不允许出现除x或X以外的其他字符,否则报错。

返回值类型:number

示例:

1
2
3
4
5
gaussdb=# SELECT to_number('12,454.8-', '99G999D9S');
 to_number 
-----------
  -12454.8
(1 row)

to_number(text, text)

描述:将字符串类型的值转换为指定格式的数字。

返回值类型:numeric

示例:

1
2
3
4
5
gaussdb=# SELECT to_number('12,454.8-', '99G999D9S');
 to_number
-----------
  -12454.8
(1 row)

to_number(expr [DEFAULT return_value ON CONVERSION ERROR [, fmt]])

描述:将字符串expr根据指定fmt格式转换成numeric类型的值。不指定fmt时,expr需要为能直接转换成numeric的字符串, 例: '123' , '1e2'。类型转换格式请参见表5 to_number数值格式化的模板模式

参数:

  • expr:支持的类型有CHAR、VARCHAR2、NCHAR、NVARCHAR2、TEXT、INT、FLOAT等可以转换成字符串类型的表达式。输入null,返回null。
  • DEFAULT RETURN_VALUE ON CONVERSION ERROR:可选参数,在参数a_format_version值为10c且a_format_dev_version值为s1的情况下,用于当expr转换numeric类型失败时指定返回值return_value。return_value同expr一样可以是任何能转换成字符串的类型。return_value的转换方式和expr相同也是根据fmt格式进行转换,会先校验return_value是否会转换失败,如果失败则该函数报错。
  • fmt:可选参数。指定expr的转换格式。任意入参为null,则返回null。

返回值类型:numeric

示例:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
gaussdb=# SET a_format_version='10c';
gaussdb=# SET a_format_dev_version='s1';

gaussdb=# SELECT to_number('1e2');
 to_number 
-----------
       100
(1 row)

gaussdb=# SELECT to_number('123.456');
 to_number 
-----------
   123.456
(1 row)

gaussdb=# SELECT to_number('123', '999');
 to_number 
-----------
       123
(1 row)

gaussdb=# SELECT to_number('123-', '999MI');
 to_number 
-----------
      -123
(1 row)

gaussdb=# SELECT to_number('123' DEFAULT '456-' ON CONVERSION ERROR, '999MI');
 to_number 
-----------
      -456
(1 row)

to_timestamp(double precision)

描述:把Unix纪元转换成时间戳。

返回值类型:timestamp with time zone

示例:

1
2
3
4
5
gaussdb=# SELECT to_timestamp(1284352323);
      to_timestamp      
------------------------
 2010-09-13 12:32:03+08
(1 row)

to_timestamp(string [,fmt])

描述:将字符串string按fmt指定的格式转换成时间戳类型的值。不指定fmt时,按参数nls_timestamp_format所指定的格式转换。GaussDB的to_timestamp中,

  • 如果输入的年份YYYY=0,系统报错。
  • 如果输入的年份YYYY<0,在fmt中指定SYYYY,则正确输出公元前绝对值n的年份。

fmt中出现的字符必须与日期/时间格式化的模式相匹配,否则报错。

返回值类型:timestamp without time zone

示例:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
gaussdb=# SHOW nls_timestamp_format;
    nls_timestamp_format    
----------------------------
 DD-Mon-YYYY HH:MI:SS.FF AM
(1 row)

gaussdb=# SELECT to_timestamp('12-sep-2014');
    to_timestamp     
---------------------
 2014-09-12 00:00:00
(1 row)
1
2
3
4
5
gaussdb=# SELECT to_timestamp('12-Sep-10 14:10:10.123000','DD-Mon-YY HH24:MI:SS.FF');
      to_timestamp       
-------------------------
 2010-09-12 14:10:10.123
(1 row)
1
2
3
4
5
gaussdb=# SELECT to_timestamp('-1','SYYYY');
      to_timestamp      
------------------------
 0001-01-01 00:00:00 BC
(1 row)
1
2
3
4
5
gaussdb=# SELECT to_timestamp('98','RR');
    to_timestamp     
---------------------
 1998-01-01 00:00:00
(1 row)
1
2
3
4
5
gaussdb=# SELECT to_timestamp('01','RR');
    to_timestamp     
---------------------
 2001-01-01 00:00:00
(1 row)
说明:
  • 在参数a_format_version值为10c且a_format_dev_version值为s1的情况下fmt支持FF[7-9],在FF[7-9]的情况下允许转换string中的对应位置长度小于等于FF紧跟的数字,但最终转换结果长度最大保留6位。
  • 不支持current_timestamp函数返回结果作为string参数。
  • PG兼容模式下,当string比fmt格式长时(例如:to_timestamp('2024-01-05 14:52:06.694752', 'yyyy-MM-dd hh24:mi:ss')),按照fmt格式的长度自动对string进行截取并舍弃长度超出部分。
  • PG兼容模式下,开启GUC参数format_pg_to_timestamp后,如果存在不支持的格式,会自动跳过,当前版本不支持FF、FF7、FF8、FF9、RR、RRRR、SYYYY、xX等格式;支持早于294277-01-01 00:00:00之前的时间日期和负数年份(转化成公元前);FF1-FF6会将超出精确度的毫秒四舍五入;当时间日期中相同项冲突时返回一个格式正确的时间不会报错,具体冲突行为如表2 to_timestamp fmt冲突所示。
表2 to_timestamp fmt冲突

模式

描述

SSSSS与时间冲突

保留时间(分钟,小时)中的值以及SSSSS中的秒数部分的值。

W,J与时间日期冲突

优先级:J,W,mmdd按顺序进行覆盖。

W:未指定时,默认为星期三。

默认行为:W覆盖mmdd。

SSSSS与SS冲突

保留SS,舍弃SSSSS。

DDD与日期冲突

舍弃DDD。

to_timestamp(text [DEFAULT return_value ON CONVERSION ERROR [, fmt]])

描述:将字符串text按fmt指定的格式转换成TIMESTAMP类型的值。不指定fmt时,在参数a_format_version值为10c和a_format_dev_version值为s1的情况下,按参数nls_timestamp_format所指定的格式转换;若不指定参数a_format_version和a_format_dev_version,则按照固定fmt = 'yyyy-mm-dd hh24-mi-ss'进行转换。

参数:

  • text:任何计算结果为CHAR、VARCHAR2、NCHAR、NVARCHAR2、TEXT类型字符串的表达式。输入null,返回null。
  • DEFAULT return_value ON CONVERSION ERROR:可选参数,在参数a_format_version值为10c和a_format_dev_version值为s1的情况下,用于当text转换TIMESTAMP类型失败时指定返回值return_value。return_value可以是表达式或者绑定的变量,需可以转换为CHAR、VARCHAR2、NCHAR、NVARCHAR2、TEXT类型或者是null。return_value转换为timestamp类型数据的方法与text转换为timestamp类型数据相同,如果return_value转换为timestamp类型数据失败,该函数报错。
  • fmt:可选参数。指定text的日期时间模型格式。缺省时,text需要符合默认的日期格式的要求。fmt指定为J时,text需要为整数。

返回值类型:timestamp without time zone

示例:

gaussdb=# SET a_format_version='10c';
SET
gaussdb=# SET a_format_dev_version='s1';
SET
gaussdb=# SELECT to_timestamp('11-Sep-11' DEFAULT '12-Sep-10 14:10:10.123000' ON CONVERSION ERROR,'DD-Mon-YY HH24:MI:SS.FF');
    to_timestamp     
---------------------
 2011-09-11 00:00:00
(1 row)
gaussdb=# SELECT to_timestamp('12-Sep-10 14:10:10.123000','DD-Mon-YY HH24:MI:SSXFF');
      to_timestamp       
-------------------------
 2010-09-12 14:10:10.123
(1 row)

to_timestamp(text, text)

描述:将字符串类型的值转换为指定格式的时间戳。

返回值类型:timestamp

示例:

1
2
3
4
5
gaussdb=# SELECT to_timestamp('05 Dec 2000', 'DD Mon YYYY');
    to_timestamp
---------------------
 2000-12-05 00:00:00
(1 row)

to_timestamp_tz(string [DEFAULT return_value ON CONVERSION ERROR] [,fmt])

描述:将字符串string按fmt指定的格式转换成带时区时间戳类型的值。不指定fmt时,按参数nls_timestamp_tz_format所指定的格式转换。

参数:

  • DEFAULT return_value ON CONVERSION ERROR:可选参数。当string转换成timestamp with time zone类型失败时,则将return_value转换timestamp with time zone类型。
  • fmt:可选参数。指定string的日期时间模型格式。

返回值类型:timestamp with time zone

示例:

1
2
3
4
5
gaussdb=# SELECT to_timestamp_tz('05 DeX 2000' DEFAULT '05 Dec 2001' ON CONVERSION ERROR, 'DD Mon YYYY');
    to_timestamp_tz
--------------------------
 2001-12-05 00:00:00+08:00
(1 row)
说明:

此函数在参数a_format_version值为10c且a_format_dev_version值为s1的情况下有效。

to_timestamp_tz(string [DEFAULT return_value ON CONVERSION ERROR], fmt, nlsparam)

描述:将字符串string按fmt指定的格式转换成带时区时间戳类型的值。当string转换成timestamp with time zone类型失败时,则将return_value转换timestamp with time zone类型。nlsparam指定字符串时间中月份和日名称所用的语言,形式为'nls_date_language=language',目前language只支持ENGLISH和AMERICAN。正确使用nlsparam参数的结果和省略nlsparam参数的结果保持一致。具体信息如表3 参数说明所示。

返回值类型:timestamp with time zone

表3 参数说明

参数

类型

描述

string

text

被用来转换为带时区时间戳类型的字符串。

return_value

text

当string转换成timestamp with time zone类型失败时,则将return_value转换timestamp with time zone类型。

fmt

text

指定参数string的日期时间模型格式。

nlsparam

text

指定参数string中月份和日名称所用的语言。

示例:

1
2
3
4
5
gaussdb=# SELECT to_timestamp_tz('05 DeX 2000' DEFAULT '05 Dec 2001' ON CONVERSION ERROR, 'DD Mon YYYY','nls_date_language=AMERICAN');
    to_timestamp_tz
--------------------------
 2001-12-05 00:00:00+08:00
(1 row)
说明:

该函数在参数a_format_version值为10c且a_format_dev_version值为s4的情况下有效。

to_dsinterval(text)

描述:将字符转换为interval类型。支持SQL兼容格式与ISO格式。

返回值类型:interval

示例:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
gaussdb=# SELECT to_dsinterval('12 1:2:3.456');
    to_dsinterval     
----------------------
 12 days 01:02:03.456
(1 row)

gaussdb=# SELECT to_dsinterval('P3DT4H5M6S');
  to_dsinterval  
-----------------
 3 days 04:05:06
(1 row)
说明:

此函数在参数a_format_version值为10c且a_format_dev_version值为s2的情况下有效。

to_yminterval(text)

描述:将字符转换为interval类型。支持SQL兼容格式与ISO格式。

返回值类型:interval

示例:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
gaussdb=# SELECT to_yminterval('1-1');
 to_yminterval 
-----------------
 1 year 1 mon
(1 row)

gaussdb=# SELECT to_yminterval('P13Y3M4DT4H2M5S');
 to_yminterval  
-----------------
 13 years 3 mons
(1 row)
说明:

此函数在参数a_format_version值为10c且a_format_dev_version值为s2的情况下有效。

表4 数值格式化的模板模式

模式

描述

9

带有指定数值位数的值。

0

带前导零的值。

.(句点)

小数点。

,(逗号)

分组(千)分隔符。

PR

尖括号内负值。

S

带符号的数值(使用区域设置)。

L

货币符号(使用区域设置)。

D

小数点(使用区域设置)。

G

分组分隔符(使用区域设置)。

MI

在指明的位置的负号(如果数字<0)。

PL

在指明的位置的正号(如果数字>0)。

SG

在指明的位置的正/负号。

RN

罗马数字(输入在1和3999之间)。

TH或th

序数后缀。

V

移动指定位(小数)。

x或X

16进制转换10进制标识符。

表5 to_number数值格式化的模板模式

模式

描述

9

匹配一个数字,9的数量可以大于等于expr中对应位置的数字的数量。

0

严格匹配一个数字,0的数量要等于expr中数字的数量。

5

匹配一个0或5的数字。

.(句点)

指定位置的小数点。

,(逗号)

指定位置的分组(千)分隔符,可以在fmt中指定多个逗号。

B

前导空白。

PR

尖括号(<>)中对应负值。空白对应正值。

S

前导减号(-)的负值,返回带有前导加号(+)的正值。返回带有尾随减号(-)的负值,返回带有尾随加号(+)的正值。

MI

尾随减号(-)的负值,尾随空白的正值。

$

前导美元符号。

L

本地货币符号。

C

指定位置ISO货币符号。

U

双币符号。

D

小数点(使用区域设置)。

G

分组分隔符(ISO标准),可以在fmt中指定多个逗号。

RN / rn

罗马数字(输入在1和3999之间),to_number不支持该fmt。

V

to_number不支持该fmt。

X / x

十六进制与十进制转换。

TM

to_number不支持。

FM

位于fmt中的起始位置,用于去除前导空格并保留占位符的0,对to_number的结果无实际影响。

EEEE

按照科学计数法模型转换。

说明:

在参数a_format_version值为10c且a_format_dev_version值为s1的情况下,fmt功能参考该表格,否则如表4 数值格式化的模板模式所示。其中该表中国际化ISO的fmt功能受参数LC_MONETARY和LC_NUMERIC影响,具体表现为:不同的LC_MONETARY取值会影响货币符号;不同的LC_NUMERIC取值则会影响小数点符号与千位分隔符的显示规则。

cast_varchar2_to_raw_for_histogram(varchar2)

描述:将varchar2类型转换为raw类型输出。

返回值类型:raw

abstime_text(abstime)

描述:将abstime类型转换为text类型输出。

参数:abstime

返回值类型:text

abstime_to_smalldatetime(abstime)

描述:将abstime类型转换为smalldatetime类型。

参数:abstime

返回值类型:smalldatetime

bigint_tid(bigint)

描述:将bigint类型转换为tid类型。

参数:bigint

返回值类型:tid

bool_int1(boolean)

描述:将boolean类型转换为int1类型。

参数:boolean

返回值类型:tinyint

bool_int2(boolean)

描述:将boolean类型转换为int2类型。

参数:boolean

返回值类型:smallint

bool_int8(boolean)

描述:将boolean类型转换为int8类型。

参数:boolean

返回值类型:bigint

bpchar_date(character)

描述:将字符串转换为日期类型。

参数:character

返回值类型:date

bpchar_float4(character)

描述:将字符串转换为float4类型。

参数:character

返回值类型:real

bpchar_float8(character)

描述:将字符串转换为float8类型。

参数:character

返回值类型:double precision

bpchar_int4(character)

描述:将字符串转换为int4类型。

参数:character

返回值类型:integer

bpchar_int8(character)

描述:将字符串转换为int8类型。

参数:character

返回值类型:bigint

bpchar_numeric(character)

描述:将字符串转换为numeric类型。

参数:character

返回值类型:numeric

bpchar_timestamp(character)

描述:将字符串转换为时间戳类型。

参数:character

返回值类型:timestamp without time zone

bpchar_to_smalldatetime(character)

描述:将字符串转换为smalldatetime类型。

参数:character

返回值类型:smalldatetime

complex_array_in(cstring, oid, int2vector)

描述:将外部complex_array类型转换为内部anyarray数组类型。

参数:cstring, oid, int2vector

返回值类型:anyarray

date_bpchar(date)

描述:将date类型转换为bpchar类型。

参数:date

返回值类型:character

date_text(date)

描述:将date类型转换为text类型。

参数:date

返回值类型:text

date_varchar(date)

描述:将date类型转换为varchar类型。

参数:date

返回值类型:character varying

f4toi1(real)

描述:将float4类型强转为uint8类型。

参数:real

返回值类型:tinyint

f8toi1(double precision)

描述:将float8类型强转为uint8类型。

参数:double precision

返回值类型:tinyint

float4_bpchar(real)

描述:将float4类型转换为bpchar类型。

参数:real

返回值类型:character

float4_text(real)

描述:将float4类型转换为text类型。

参数:real

返回值类型:text

float4_varchar(real)

描述:将float4类型转换为varchar类型。

参数:real

返回值类型:character varying

float8_bpchar(double precision)

描述:将float8类型转换为bpchar类型。

参数:double precision

返回值类型:character

float8_interval(double precision)

描述:将float8类型转换为interval类型。

参数:double precision

返回值类型:interval

float8_text(double precision)

描述:将float8类型转换为text类型。

参数:double precision

返回值类型:text

float8_varchar(double precision)

描述:将float8类型转换为varchar类型。

参数:double precision

返回值类型:character varying

i1tof4(tinyint)

描述:将uint8类型转换为float4类型。

参数:tinyint

返回值类型:real

i1tof8(tinyint)

描述:将uint8类型转换为float8类型。

参数:tinyint

返回值类型:double precision

i1toi2(tinyint)

描述:将uint8类型转换为int16类型。

参数:tinyint

返回值类型:smallint

i1toi4(tinyint)

描述:将uint8类型转换为int32类型。

参数:tinyint

返回值类型:integer

i1toi8(tinyint)

描述:将uint8类型转换为int64类型。

参数:tinyint

返回值类型:bigint

i2toi1(smallint)

描述:将int16类型转换为uint8类型。

参数:smallint

返回值类型:tinyint

i4toi1(integer)

描述:将int32类型转换为uint8类型。

参数:integer

返回值类型:tinyint

i8toi1(bigint)

描述:将int64类型转换为uint8类型。

参数:bigint

返回值类型:tinyint

int1_avg_accum(bigint[], tinyint)

描述:将第二个uint8类型参数,加入到第一个参数中,第一个参数为bigint类型数组。

参数:bigint[], tinyint

返回值类型:bigint[]

int1_bool(tinyint)

描述:将uint8类型转换为boolean类型。

参数:tinyint

返回值类型:boolean

int1_bpchar(tinyint)

描述:将uint8类型转换为bpchar类型。

参数:tinyint

返回值类型:character

int1_mul_cash(tinyint, money)

描述:返回一个int8类型参数和一个cash类型参数的乘积,返回值为cash类型。

参数:tinyint, money

返回值类型:money

int1_numeric(tinyint)

描述:将uint8类型转换为numeric类型。

参数:tinyint

返回值类型:numeric

int1_nvarchar2(tinyint)

描述:将uint8类型转换为nvarchar2类型。

参数:tinyint

返回值类型:nvarchar2

int1_text(tinyint)

描述:将uint8类型转换为text类型。

参数:tinyint

返回值类型:text

int1_varchar(tinyint)

描述:将uint8类型转换为varchar类型。

参数:tinyint

返回值类型:character varying

int1in(cstring)

描述:将字符串转换为无符号一字节整数类型。

参数:cstring

返回值类型:tinyint

int1out(tinyint)

描述:将无符号一字节整数类型转换为字符串。

参数:tinyint

返回值类型:cstring

int1up(tinyint)

描述:输入整数转换为无符号一字节整数类型。

参数:tinyint

返回值类型:tinyint

int2_bool(smallint)

描述:将有符号二字节整数类型转换为boolean类型。

参数:smallint

返回值类型:boolean

int2_bpchar(smallint)

描述:将有符号二字节整数类型转换为bpchar类型。

参数:smallint

返回值类型:character

int2_text(smallint)

描述:将有符号二字节整数类型转换为text类型。

参数:smallint

返回值类型:text

int2_varchar(smallint)

描述:将有符号二字节整数类型转换为varchar类型。

参数:smallint

返回值类型:character varying

int4_bpchar(integer)

描述:将有符号四字节整数类型转换为bpchar类型。

参数:integer

返回值类型:character

int4_text(integer)

描述:将有符号四字节整数类型转换为text类型。

参数:integer

返回值类型:text

int4_varchar(integer)

描述:将有符号四字节整数类型转换为varchar类型。

参数:integer

返回值类型:character varying

int8_bool(bigint)

描述:将有符号八字节整数类型转换为boolean类型。

参数:bigint

返回值类型:boolean

int8_bpchar(bigint)

描述:将有符号八字节整数类型转换为bpchar类型。

参数:bigint

返回值类型:character

int8_text(bigint)

描述:将有符号八字节整数类型转换为text类型。

参数:bigint

返回值类型:text

int8_varchar(bigint)

描述:将有符号八字节整数类型转换为varchar类型。

参数:bigint

返回值类型:character varying

intervaltonum(interval)

描述:将内部数据类型日期转换为numeric类型。

参数:interval

返回值类型:numeric

numeric_bpchar(numeric)

描述:将numeric类型转换为bpchar类型。

参数:numeric

返回值类型:character

numeric_int1(numeric)

描述:将numeric类型转换为有符号一字节整数类型。

参数:numeric

返回值类型:tinyint

numeric_text(numeric)

描述:将numeric类型转换为text类型。

参数:numeric

返回值类型:text

numeric_varchar(numeric)

描述:将numeric类型转换为varchar类型。

参数:numeric

返回值类型:character varying

nvarchar2in(cstring, oid, integer)

描述:将c字符串转换为varchar类型。

参数:cstring, oid, integer

返回值类型:nvarchar2

nvarchar2out(nvarchar2)

描述:将text类型转换为c字符串。

参数:nvarchar2

返回值类型:cstring

nvarchar2send(nvarchar2)

描述:将varchar类型转换为二进制。

参数:nvarchar2

返回值类型:bytea

oidvectorin_extend(cstring)

描述:将字符串转换为oidvector类型。

参数:cstring

返回值类型:oidvector_extend

oidvectorout_extend(oidvector_extend)

描述:将oidvector类型转换为字符串。

参数:oidvector_extend

返回值类型:cstring

oidvectorsend_extend(oidvector_extend)

描述:将oidvector类型转换为字符串。

参数:oidvector_extend

返回值类型:bytea

reltime_text(reltime)

描述:将reltime类型转换为text类型。

参数:reltime

返回值类型:text

text_date(text)

描述:将text类型转换为date类型。

参数:text

返回值类型:date

text_float4(text)

描述:将text类型转换为float4类型。

参数:text

返回值类型:real

text_float8(text)

描述:将text类型转换为float8类型。

参数:text

返回值类型:double precision

text_int1(text)

描述:将text类型转换为int1类型。

参数:text

返回值类型:tinyint

text_int2(text)

描述:将text类型转换为int2类型。

参数:text

返回值类型:smallint

text_int4(text)

描述:将text类型转换为int4类型。

参数:text

返回值类型:integer

text_int8(text)

描述:将text类型转换为int8类型。

参数:text

返回值类型:bigint

text_numeric(text)

描述:将text类型转换为numeric类型。

参数:text

返回值类型:numeric

text_timestamp(text)

描述:将text类型转换为timestamp类型。

参数:text

返回值类型:timestamp without time zone

time_text(time without time zone)

描述:将time类型转换为text类型。

参数:time without time zone

返回值类型:text

timestamp_text(timestamp without time zone)

描述:将timestamp类型转换为text类型。

参数:timestamp without time zone

返回值类型:text

timestamp_to_smalldatetime(timestamp without time zone)

描述:将timestamp类型转换为smalldatetime类型。

参数:timestamp without time zone

返回值类型:smalldatetime

timestamp_varchar(timestamp without time zone)

描述:将timestamp类型转换为varchar类型。

参数:timestamp without time zone

返回值类型:character varying

timestamptz_to_smalldatetime(timestamp with time zone)

描述:将timestamptz类型转换为smalldatetime类型。

参数:timestamp with time zone

返回值类型:smalldatetime

timestampzone_text(timestamp with time zone)

描述:将timestampzone类型转换为text类型。

参数:timestamp with time zone

返回值类型:text

timetz_text(time with time zone)

描述:将timetz类型转换为text类型。

参数:time with time zone

返回值类型:text

to_integer(character varying)

描述:转换为integer类型。

参数:character varying

返回值类型:integer

to_interval(character varying)

描述:转换为interval类型。

参数:character varying

返回值类型:interval

to_numeric(character varying)

描述:转换为numeric类型。

参数:character varying

返回值类型:numeric

to_text(smallint)

描述:转换为text类型。

参数:smallint

返回值类型:text

to_ts(character varying)

描述:转换为ts类型。

参数:character varying

返回值类型:timestamp without time zone

to_varchar2(timestamp without time zone)

描述:转换为varchar2类型。

参数:timestamp without time zone

返回值类型:character varying

varchar_date(character varying)

描述:将varchar类型转换为date类型。

参数:character varying

返回值类型:date

varchar_float4(character varying)

描述:将varchar类型转换为float4类型。

参数:character varying

返回值类型:real

varchar_float8(character varying)

描述:将varchar类型转换为float8类型。

参数:character varying

返回值类型:double precision

varchar_int4(character varying)

描述:将varchar类型转换为int4类型。

参数:character varying

返回值类型:integer

varchar_int8(character varying)

描述:将varchar类型转换为int8类型。

参数:character varying

返回值类型:bigint

varchar_numeric(character varying)

描述:将varchar类型转换为numeric类型。

参数:character varying

返回值类型:numeric

varchar_timestamp(character varying)

描述:将varchar类型转换为timestamp类型。

参数:character varying

返回值类型:timestamp without time zone

varchar2_to_smlldatetime(character varying)

描述:将varchar2类型转换为smlldatetime类型。

参数:character varying

返回值类型:smalldatetime

xidout4(xid32)

描述:将xid类型输出为四字节数字类型。

参数:xid32

返回值类型:cstring

xidsend4(xid32)

描述:将xid类型转换为二进制格式。

参数:xid32

返回值类型:bytea

bytea_blob(any)

描述:将bytea类型的数据转换为blob类型,当前只支持bytea类型的转换,其他类型暂不支持。

参数:bytea

返回值类型:blob

treat(expr AS [JSON | REF] schema.type)

描述:将expr转化为AS后关键字指定的类型(JSON或输入的用户自定义类型)。

返回值类型:JSON或输入的用户自定义类型。

示例:

1
2
3
4
5
6
7
8
9
gaussdb=# CREATE TABLE json_doc(data CLOB);
gaussdb=# INSERT INTO json_doc values('{"name":"a"}');
gaussdb=# SELECT treat(data as json) FROM json_doc;
     json     
--------------
 {"name":"a"}
(1 row)
gaussdb=# DROP TABLE json_doc;
DROP TABLE

nesttable_to_array(anynesttable)

描述:将一个无索引的集合类型转换成具有相同元素的数组类型。

参数:anynesttable

返回值类型:anyarray

示例:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
gaussdb=# create or replace procedure p1 is
gaussdb$#     type t1 is table of int;
gaussdb$#     v1 t1 := t1(1, 2, 3);
gaussdb$#     v2 int[] := cast(v1 as int[]);
gaussdb$# begin
gaussdb$#     raise info '%', v2;
gaussdb$# end;
gaussdb$# /
CREATE PROCEDURE
gaussdb=# call p1();
INFO:  {1,2,3}
 p1 
----

(1 row)

gaussdb=# CREATE TYPE t1 is table of int;
CREATE TYPE
gaussdb=# SELECT cast(t1(1, 2, 3) AS int[]) result;
 result  
---------
 {1,2,3}
(1 row)
gaussdb=# DROP procedure p1;
DROP PROCEDURE

gaussdb=# DROP type t1;
DROP TYPE

indexbytableint_to_array(anyindexbytable)

描述:将一个索引类型为integer的集合类型转换成具有相同元素的数组类型。

参数:anyindexbytable

返回值类型:anyarray

示例:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
gaussdb=# create or replace package pkg1 is
gaussdb$#     type t1 is table of int index by int;
gaussdb$#     procedure p1();
gaussdb$# end pkg1;
gaussdb$# /
CREATE PACKAGE
gaussdb=# 
gaussdb=# create or replace package body pkg1 is
gaussdb$#     procedure p1() is
gaussdb$#         v1 t1 := t1(1 => 1, 2 => 2, 3 => 3);
gaussdb$#         v2 int[];
gaussdb$#     begin
gaussdb$#         v2 := cast(v1 as int[]);
gaussdb$#         raise info '%', v2;
gaussdb$#     end;
gaussdb$# end pkg1;
gaussdb$# /
CREATE PACKAGE BODY
gaussdb=#  
gaussdb=# call pkg1.p1();
INFO:  {1,2,3}
 p1 
----

(1 row)

gaussdb=# SELECT indexbytableint_to_array(pkg1.t1(1 => 1, 2 => 2, 3 => 3));
 indexbytableint_to_array 
--------------------------
 {1,2,3}
(1 row)

gaussdb=# drop package pkg1;
DROP PACKAGE
提示

您即将访问非华为云网站,请注意账号财产安全

文档反馈

文档反馈

意见反馈

0/500

标记内容

同时提交标记内容