暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

DEV01-GBase 8a MPP Cluster SQL 编码进阶篇之内置函数05

原创 wiserhowe 2023-09-25
482
(八)转换函数
函数 功能
CAST、CONVERT 数据类型转换
CONV 不同数字进制间的转换
TO_NUMBER 字符串 string转化成数值
TO_CHAR 日期转化为字符串
TO_DATE 字符串 string 格式化成 format 类型的日期

TO_DATE 函数的功能不如 DATE_FORMAT 强大,所以本文没有该函数的示例。

1、CAST(expr AS type)、CONVERT(expr,type)
功能 :数据类型转换。
参数:type 可以是下列值之一:
CHAR、DATE、DATETIME、DECIMAL、TIME、NUMERIC、INT、SIGNED INT、SIGNED

函数调用 返回值 解释
NOW() 2019-06-07 04:10:02 当前日期时间
CAST(NOW() AS DATE) 2019-06-07 将 datetime 类型转换为 date 类型
  • 隐式转换规则
    (1) 若字符串是以数字开头,并且全部都是数字,则转换的数字结果是整个字符串;部分是数字,则转换的数字结果是截止到第一个不是数字的字符为止。
SELECT '122ABC' + 1; # 结果:123

(2) 若字符串不是以数字开头,则转换的数字结果是 0

SELECT 'AB33' + 100; # 结果:100

2、CONV (N,from_base,to_base)
功能:数字进制转换。
参数:将 N 由 from_base 进制转化为 to_base 进制的字符串,任意一个参数为 NULL,则返回值为 NULL。

函数调用 返回值 解释
CONV(5,10,2) 101 十进制转二进制
CONV(‘FF’,16,10) 255 十六进制转十进制

3、TO_CHAR (datetime,[FORMAT])
      功能:将日期时间转换为字符串,并进行格式化输出。
      TO_CHAR (number,[FORMAT])
      功能:将数字转换为字符串,并进行格式化输出。

函数调用 返回值 解释
NOW()
TO_CHAR(now(),‘YYYY/MM/DD’) 2022/06/10 2022-06-10 15:30:50
TO_CHAR(now(),‘YYYY"年"MM"月"DD"日"’) 2022年06月10日 插入 FORMAT 以外的字符要使用双引号
TO_CHAR(987654321,‘999,999,999’) 987,654,321 千分位格式

4、TO_NUMBER
      功能:将字串表达式中的数字转换为数值型。

函数调用 返回值 解释
TO_NUMBER(‘3.14’)+3.14 6.28 依赖隐式转换、不用 TO_NUMBER 也是可以的
SELECT TO_NUMBER(’+000000123’) 123
最后修改时间:2023-09-25 09:06:03
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论