gaussdb200 常用函数

文章 犀牛 ⋅ 于 2021-06-09 22:34:49 ⋅ 738 阅读

字符操作函数

  • length(string bytea, encoding name )

    描述:指定encoding编码格式的string的字符数。在这个编码格式中,string必须是有效的。

    返回值类型:int

    SELECT length('jose', 'UTF8');
    /*
    length 
    --------
        4
    (1 row)
    */
  • substring(string [from int] [for int])

    描述:截取子字符串,from int表示从第几个字符开始截取,for int表示截取几个字节。

    返回值类型:text

    -- 从第二个开始截取 共截取三个
    SELECT substring('Thomas' from 2 for 3);
    /*
    substring 
    -----------
    hom
    (1 row)
    */
    -- 正则截取
    SELECT substring('Thomas of' from '.+om');
    /*
    substring 
    -----------
    Thom
    (1 row)
    */
  • repeat(string text, number int )

    描述:将string重复number次。

    返回值类型:text

    SELECT repeat('hei',2);
    /*
    repeat 
    --------
    heihei
    (1 row)
    */
  • replace(string text, from text, to text)

    描述:把字符串string里出现地所有子字符串from的内容替换成子字符串to的内容。

    返回值类型:text

    SELECT replace('abcdefabcdef', 'cd', 'XXX');
    /*
      replace     
    ----------------
    abXXXefabXXXef
    (1 row)
    */
  • reverse(string text)

    描述:字符串反转

    返回值类型:text

    SELECT reverse('abcdefg');
    /*
    reverse 
    ---------
    gfedcba
    (1 row)
    */
  • substr(string,from)

    描述:

    从参数string中抽取子字符串。

    from表示抽取的起始位置。

    • from为0时,按1处理。
    • from为正数时,抽取从from到末尾的所有字符。
    • from为负数时,抽取字符串的后n个字符,n为from的绝对值。

    返回值类型:varchar

    SELECT substr('ABCDEF',2);
    /*
    substr 
    --------
    BCDEF
    (1 row)
    */
    SELECT substr('ABCDEF',-2);
    /*
    substr 
    --------
    EF
    (1 row)
    */
  • upper(string)

    描述:把字符串转化为大写。

    返回值类型:varchar

    SELECT upper('tom');
    /*
    upper
    -------
    TOM
    (1 row)
    */
  • Lower(string)

    描述:把字符串转化为小写。

    返回值类型:varchar

    SELECT lower('TOM');
    /*
    lower
    -------
    tom
    (1 row)
    */
  • concat(str1,str2)

    描述:将字符串str1和str2连接并返回。

    返回值类型:varchar

    SELECT concat('Hello', ' World!');
    /*
    concat    
    --------------
    Hello World!
    (1 row)
    */
    SELECT concat('Hello', ' World!',null);
    /*
      concat    
    --------------
    Hello World!
    (1 row)
    */
  • concat_ws(sep text, str"any" [, str"any" [, ...] ])

    描述:以第一个参数为分隔符,链接第二个以后的所有参数。

    返回值类型:text

    SELECT concat_ws('_','Hello', 'World');
    /*
    concat_ws  
    -------------
    Hello_World
    (1 row)
    */
    SELECT concat_ws('_','Hello', 'World',null);
    /*
    concat_ws  
    -------------
    Hello_World
    (1 row)
    */
  • md5(string)

    描述:将string使用MD5加密,并以16进制数作为返回值。

    返回值类型:text

    SELECT md5('ABC');
    /*
                 md5                
    ----------------------------------
    902fbdd2b1df0c4f70b4a5d23525e932
    (1 row)
    */

时间日期函数

  • age(timestamp, timestamp)

    描述:将两个参数相减,并以年、月、日作为返回值。若相减值为负,则函数返回亦为负。

    返回值类型:interval

    SELECT age(timestamp '2001-04-10', timestamp '1957-06-13');
    /*
             age           
    -------------------------
    43 years 9 mons 27 days
    (1 row)
    */
  • age(timestamp)

    描述:当前时间和参数相减。

    返回值类型:interval

    SELECT age(timestamp '1957-06-13');
    /*
             age            
    --------------------------
    63 years 11 mons 26 days
    (1 row)
    */
  • clock_timestamp()

    描述:实时时钟的当前时间戳。

    返回值类型:timestamp with time zone

    SELECT clock_timestamp();
    /*
          clock_timestamp        
    -------------------------------
    2021-06-09 01:24:36.726657-07
    (1 row)
    */
  • current_date

    描述:当前日期。

    返回值类型:date

    SELECT current_date;
    /*
      date    
    ------------
    2021-06-09
    (1 row)
    */
  • current_time

    描述:当前时间。

    返回值类型:time with time zone

    SELECT current_time;
    /*
         timetz       
    --------------------
    01:26:04.553669-07
    (1 row)
    */
  • current_timestamp

    描述:当前日期及时间。

    返回值类型:timestamp with time zone

    SELECT current_timestamp;
    /*
          pg_systimestamp        
    -------------------------------
    2021-06-09 01:26:55.812076-07
    (1 row)
    */
  • date_part(text, timestamp)

    描述:获取小时的值。

    等效于extract(field from timestamp)。

    返回值类型:double precision

    SELECT date_part('hour', timestamp '2001-02-16 20:38:40');
    /*
    date_part 
    -----------
          20
    (1 row)
    */
    SELECT date_part('day', timestamp '2001-02-16 20:38:40');
    /*
    date_part 
    -----------
          16
    (1 row)
    */
    SELECT date_part('month', timestamp '2001-02-16 20:38:40');
    /*
    date_part 
    -----------
           2
    (1 row)
    */
    SELECT date_part('year', timestamp '2001-02-16 20:38:40');
    /*
    date_part 
    -----------
        2001
    (1 row)
    */
  • trunc(timestamp)

    描述:默认按天截取。

    trunc(float)的时候则为取整数部分(不进行四舍五入计算)

    SELECT trunc(timestamp  '2001-02-16 20:38:40');
    /*
          trunc        
    ---------------------
    2001-02-16 00:00:00
    (1 row)
    */
    SELECT trunc(1.522);
    /*
    trunc 
    -------
       1
    (1 row)
    */
  • localtime

    描述:当前时间。

    返回值类型:time

    SELECT localtime;
    /*
        time       
    -----------------
    01:46:21.961536
    (1 row)
    */
  • localtimestamp

    描述:当前日期及时间。

    返回值类型:timestamp

    SELECT localtimestamp;
    /*
           timestamp          
    ----------------------------
    2021-06-09 01:46:13.423419
    (1 row)
    */
版权声明:原创作品,允许转载,转载时务必以超链接的形式表明出处和作者信息。否则将追究法律责任。来自海牛部落-犀牛,http://hainiubl.com/topics/75658
本帖已被设为精华帖!
本帖由 青牛 于 5月前 加精
回复数量: 0
    暂无评论~~
    • 请注意单词拼写,以及中英文排版,参考此页
    • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`, 更多语法请见这里 Markdown 语法
    • 支持表情,可用Emoji的自动补全, 在输入的时候只需要 ":" 就可以自动提示了 :metal: :point_right: 表情列表 :star: :sparkles:
    • 上传图片, 支持拖拽和剪切板黏贴上传, 格式限制 - jpg, png, gif,教程
    • 发布框支持本地存储功能,会在内容变更时保存,「提交」按钮点击时清空
    Ctrl+Enter