gaussdb200 常用函数

字符操作函数

  • 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://www.hainiubl.com/topics/75658

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值