ITPub博客

首页 > 数据库 > > GaussDB 100 类型转换函数T篇下

GaussDB 100 类型转换函数T篇下

作者:GaussDB_数据库 时间:2020-03-05 10:19:38 0 删除 编辑

TO_MULTI_BYTE

语法:

TO_MULTI_BYTE(str)

功能:全角函数,将所有单字节字符转为为等价的多字节字符。该函数只有当数据库字符集同时包含多字节和单字节的字的时候有效。否则,str不会进行任何处理。

  • 入参是可转成STRING类型的字符串或者数值类型。

  • 返回值是STRING。

注意:该函数不直接支持CLOB数据。

示例:

  • 在服务端编码为UTF8编码下,实现半角到全角的转换。

--入参为字符类型
SELECT TO_MULTI_BYTE('123 abc 456efg华为数据库') FROM SYS_DUMMY;

TO_MULTI_BYTE('123 ABC 456efg华为数据库')
------------------------------------------------------------
123 abc 456efg华为数据库

1 rows fetched.

--入参为数值类型
SELECT TO_MULTI_BYTE(12*3+6-8/2) FROM SYS_DUMMY;

TO_MULTI_BYTE(12*3+6-8/2)
-------------------------
38

1 rows fetched.
  • 在不同的编码方式下查看对应字符的十六进制。

--在UTF8编码下,查看对应字符的十六进制,每个字符占3个字节
SELECT HEX(TO_MULTI_BYTE(' "^`~')) FROM SYS_DUMMY;

HEX(TO_MULTI_BYTE(' "^`~'))
------------------------------
E38080E2809DEFB8BFE28098E288BC

1 rows fetched.
-- 在GBK编码下,查看对应字符的十六进制,每个字符占2个字节
SELECT HEX(TO_MULTI_BYTE(' "$^`~')) FROM SYS_DUMMY;

HEX(TO_MULTI_BYTE(' "$^`~'))
----------------------------
A1A1A1B1A1E7A6E4A1AEA1AB

1 rows fetched.

TO_NUMBER

语法:

TO_NUMBER(n[, fmt])

功能:将n转换为number类型。

入参n是可转成数值型的表达式或字符串。fmt参数可选,表示n的转换格式, 不设置时,默认转换为十进制。当前fmt支持两种固定格式,分别为:

  • X: 对n按16进制串进行转换, 在该格式中n只能包含16进制字符,0~9,A~F, a~f。

    • 以XX这种格式转换时,X的个数必须大于等于前面的字符个数。

    • 以0X这种格式转换时,n只能为0或正整数。

  • 000.00:对n按10进制格式转换,小数点前面的数字的个数表示整数的个数,若n中整数个数超过格式中的整数个数将会报错;fmt中小数点后面的数字个数表示转换后保留的小数位数。

返回值是number。

示例1:

将123E500转换为number类型。

SELECT TO_NUMBER('123E500', 'XXXXXXX') from SYS_DUMMY;

TO_NUMBER('123E500', 'XXXXXXX')
----------------------------------------
19129600

1 rows fetched.

示例2:

将123.500转换为number类型。

SELECT TO_NUMBER('123.500', '000.0000') from SYS_DUMMY;

TO_NUMBER('123.500', '000.0000')
----------------------------------------
123.5

1 rows fetched.

示例3:

将00FFFFFF转换为number类型。

SELECT TO_NUMBER('00FFFFFF', '0000000X') from SYS_DUMMY;
----------------------------------------
16777215

1 rows fetched.

TO_SINGLE_BYTE

语法:

TO_SINGLE_BYTE(str)

功能:半角函数,将所有多字节字符转为为等价的单字节字符。该函数只有当数据库字符集同时包含多字节和单字节的字的时候有效。否则,str不会进行任何处理。

  • 入参是可转成string类型的字符串或者数值类型。

  • 返回值是string。

注意:该函数不直接支持CLOB数据。

示例:

在服务端编码为GBK编码下,实现半角到全角的转换。
-- 入参为字符类型
SELECT TO_SINGLE_BYTE(' ”$’︿‘~123汉字') FROM SYS_DUMMY;

TO_SINGLE_BYTE(' ”$’︿‘~123汉字')
---------------------------------------
"$'^`~123汉字

1 rows fetched.
-- 入参为数值类型
SELECT TO_SINGLE_BYTE(12*3+6-8/2) FROM SYS_DUMMY;

TO_SINGLE_BYTE(12*3+6-8/2)
--------------------------
38

1 rows fetched.

TO_TIMESTAMP

语法:

TO_TIMESTAMP(expr[,fmt])

功能:将expr转换成时间类型。

  • fmt为转换格式,支持如下:yyyy/mm/dd/hh/hh12/hh24/mi/ss/ff3等。

  • 入参是可转成TIMESTAMP类型的字符串表达式。

  • 返回值是TIMESTAMP。

示例:

将字符串转换为时间类型。
SELECT TO_TIMESTAMP('2018-06-28 13:14:15', 'YYYY-MM-DD HH24:MI:SS:FF') FROM SYS_DUMMY;

TO_TIMESTAMP('2018-06-28 13:14:15', 'YYYY-MM-DD HH24:MI:SS:FF')
---------------------------------------------------------------
2018-06-28 13:14:15.000000

1 rows fetched.


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69959250/viewspace-3166010/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2020-01-06

  • 博文量
    2907
  • 访问量
    19246