GaussDB数据库基础函数介绍3

3、类型转换函数
在GaussDB数据库中,类型转换函数是指用于将数据库中的数据类型转换为其他数据类型的函数。这些函数通常用于处理不同类型的数据,例如将整数转换为浮点数、将字符串转换为数字等。

以下是一些常见的数据库类型转换函数:

--cast(x as y)

--描述:类型转换函数,将x转换成y指定的类型。

SELECT cast('20-Apr-2023' as timestamp)

,cast('20230420' as timestamp)

,cast('20230420' as int)

;

复制

cke_150.png


--cast(x as y)

--to_char (datetime/interval [, fmt])

--描述:将一个DATE、TIMESTAMP、TIMESTAMP WITH TIME ZONE或者TIMESTAMP WITH LOCAL TIME ZONE类型的DATETIME或者INTERVAL值按照fmt指定的格式转换为VARCHAR类型。

--可选参数fmt可以为以下几类:日期、时间、星期、季度和世纪。每类都可以有不同的模板,模板之间可以合理组合,常见的模板有:HH、MM、SS、YYYY、MM、DD。

--模板可以有修饰词,常用的修饰词是FM,可以用来抑制前导的零或尾随的空白。

--返回值类型:varchar

SELECT to_char(current_timestamp,'HH12:MI:SS')

,to_char(current_timestamp,'yyyymmdd')

,to_char(current_timestamp,'dd-mm-yyyy')

;

复制

cke_151.png


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

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

--可选参数fmt可以为以下几类:十进制字符、“分组”符、正负号和货币符号,每类都可以有不同的模板,模板之间可以合理组合,常见的模板有:9、0、,(千分隔符)、.(小数点)。

--模板可以有类似FM的修饰词,但FM不抑制由模板0指定而输出的0。

--要将整型类型的值转换成对应16进制值的字符串,使用模板X或x。

--返回值类型:varchar

SELECT to_char(9527,'9,999'),to_char(9527.0,'9,999.999');

复制

cke_152.png


--to_char (string)

--描述:将CHAR、VARCHAR、VARCHAR2、CLOB类型转换为VARCHAR类型。

--如使用该函数对CLOB类型进行转换,且待转换CLOB类型的值超出目标类型的范围,则返回错误。

--返回值类型:varchar

SELECT to_char('9527');

复制

cke_153.png


--to_date(text)

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

--返回值类型:timestamp without time zone

--to_date(text, text)

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

--返回值类型:timestamp without time zone

SELECT to_date('2023-04-20'),to_date('20 Apr 2023', 'DD Mon YYYY');
GaussDB数据库中,用户可以创建自定义函数。与函数相关的属性可以在系统表pg_proc中查到,其中与函数能否下推相关的两个属性是provolatile和proshippable。provolatile属性定义了函数的稳定性,而proshippable属性定义了函数是否可以下推执行。 当审视用户自定义函数时,需要检查provolatile属性是否定义正确。如果定义不正确,需要修改对应的属性,使其能够下推执行。 一个函数被认为是稳定的(STABLE),如果其返回结果在一个SQL语句的调用过程中,结果是相同的。例如,时间相关的处理函数可能与具体的GUC参数(例如控制时间显示格式的参数)相关,这些函数因此被视为稳定的。 总结来说,用户可以在GaussDB数据库中创建自定义函数,并且需要正确定义函数的属性,包括provolatile和proshippable属性,以及确保函数的稳定性以实现下推执行。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [【文末彩蛋】数据仓库服务 GaussDB(DWS)单点性能案例集锦](https://blog.csdn.net/devcloud/article/details/114084163)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值