📢📢📢📣📣📣 哈喽!大家好,我是【IT邦德】,10余年DBA及大数据工作经验
一位上进心十足的【大数据领域博主】!😜😜😜
中国DBA联盟(ACDU)成员,目前服务于工业互联网
擅长主流Oracle、MySQL、PG、高斯及GP 运维开发,备份恢复,安装迁移,性能优化、故障应急处理等。
✨ 如果有对【数据库】感兴趣的【小可爱】,欢迎关注【IT邦德】💞💞💞
❤️❤️❤️感谢各位大可爱小可爱!❤️❤️❤️

文章目录

  • 前言
  • 📣 1.字符函数
  • 📣 2.数值函数
  • 📣 3.时间和日期
  • ✨ 3.1 时间和日期操作
  • ✨ 3.2 时间/日期函数
  • 📣 4.聚合函数
  • ✨ 4.1 sum(expression)
  • ✨ 4.2 max(expression)
  • ✨ 4.3 min(expression)
  • ✨ 4.4 avg(expression)
  • ✨ 4.5 count(expression)
  • 📣 5.几何函数

前言


本篇介绍了openGauss数据库函数的使用方法


📣 1.字符函数

【openGauss实战7】函数最佳实践_数据库

字符处理函数和操作符 

⚫ instr(string1,string2,int1,int2)
返回在string1中从int1位置开始匹配到第int2次string2的位置,
第一个int表示 开始匹配起始位置,第二个int表示匹配的次数。

⚫ overlay(string placing string FROM int [for int])
替换子字符串。FROM int表示从第一个string的第几个 字符开始替换,
for int表示替换第一个string的字符数目。

⚫ substring(string [FROM int] [for int])
截取子字符串,FROM int表示从第几个字符开始截取,for int表示 截取几个字节。

⚫ replace(string text, FROM text, to text):
把字符串string里出现地所有子字符串FROM的内容替换成子字符 串to的内容。

📣 2.数值函数

【openGauss实战7】函数最佳实践_数据类型_02

📣 3.时间和日期

【openGauss实战7】函数最佳实践_子字符串_03

✨ 3.1 时间和日期操作

openGauss=# SELECT date '2022-9-28' + integer '7' AS RESULT;
       result        
---------------------
 2022-10-05 00:00:00

openGauss=# SELECT date '2022-09-28' + interval '1 hour' AS RESULT;
       result        
---------------------
 2022-09-28 01:00:00


openGauss=# SELECT timestamp '2022-09-28 01:00' + interval '23 hours' AS RESULT;
       result        
---------------------
 2022-09-29 00:00:00

openGauss=# SELECT 21 * interval '1 day' AS RESULT;
result  
---------
 21 days

【openGauss实战7】函数最佳实践_子字符串_04

✨ 3.2 时间/日期函数

1.age(timestamp, timestamp):
描述:将两个参数相减,并以年、月、日作为返回值。若相减值为负,则函数返回亦为负
openGauss=# SELECT age(timestamp '2022-04-10', timestamp '1957-06-13');
           age           
-------------------------
 64 years 9 mons 27 days

2.clock_timestamp()
描述:实时时钟的当前时间戳。
openGauss=# SELECT clock_timestamp();
        clock_timestamp        
-------------------------------
 2023-02-05 23:41:00.867435+08

3.current_date
描述:当前日期
openGauss=# SELECT current_date;
    date    
------------
 2023-02-05

4.current_timestamp
描述:当前日期及时间
openGauss=# SELECT current_timestamp;
        pg_systimestamp        
-------------------------------
 2023-02-05 23:43:53.187255+08

5.date_trunc(text, timestamp)
描述:截取到参数text指定的精度
openGauss=# SELECT date_trunc('hour', timestamp  '2022-02-16 20:38:40');
     date_trunc      
---------------------
 2022-02-16 20:00:00

6.extract(field from timestamp)
描述:获取小时的值
openGauss=# SELECT extract(hour from timestamp '2022-02-16 20:38:40');
date_part 
-----------
        20

7.sysdate
描述:当前日期及时间
openGauss=# SELECT sysdate;
       sysdate       
---------------------
 2023-02-05 23:49:05

8.add_months(d,n)
描述:用于计算时间点d再加上n个月的时间
openGauss=# SELECT add_months(to_date('2022-5-29', 'yyyy-mm-dd'), 11);
     add_months      
---------------------
 2023-04-29 00:00:00

9.last_day(d)
描述:用于计算时间点d当月最后一天的时间
openGauss=# select last_day(to_date('2023-01-01', 'YYYY-MM-DD'));
      last_day       
---------------------
 2023-01-31 00:00:00

10.next_day(x,y)
描述:用于计算时间点x开始的下一个星期几(y)的时间
openGauss=# select next_day(timestamp '2022-05-25 00:00:00','Sunday') AS cal_result;
     cal_result      
---------------------
 2022-05-29 00:00:00

📣 4.聚合函数

✨ 4.1 sum(expression)

通常情况下输入数据类型和输出数据类型是相同的,但以下情况会发生类型转换:
对于SMALLINT或INT输入,输出类型为BIGINT。
对于BIGINT输入,输出类型为NUMBER 。
对于浮点数输入,输出类型为DOUBLE PRECISION。

openGauss=# SELECT SUM(amount) FROM customer_t1;
  sum
-------
 14200
(1 row)

✨ 4.2 max(expression)

描述:所有输入行中expression的最大值。
参数类型:任意数组、数值、字符串、日期/时间类型、IPV4和IPV6地址(INET型和CIDR型)。
返回类型:与参数数据类型相同

openGauss=# SELECT MAX (c_customer_sk) FROM customer_t1;
 max
------
 9976
(1 row)

✨ 4.3 min(expression)

描述:所有输入行中expression的最小值。
参数类型:任意数组、数值、字符串、日期/时间类型、IPV4和IPV6地址(INET型和CIDR型)。
返回类型:与参数数据类型相同

openGauss=#  SELECT MIN (c_customer_sk) FROM customer_t1;
min
------
 3869
(1 row)

✨ 4.4 avg(expression)

描述:所有输入值的均值(算术平均)。
返回类型:
对于任何整数类型输入,结果都是NUMBER类型。
对于任何浮点输入,结果都是DOUBLE PRECISION类型。
否则和输入数据类型相同。

openGauss=# SELECT AVG(AMOUNT) FROM customer_t1;
          avg
-----------------------
 2366.6666666666666667
(1 row)

✨ 4.5 count(expression)

描述:返回表中满足expression不为NULL的行数。
返回类型:BIGINT

openGauss=# SELECT COUNT(c_customer_id) FROM customer_t1;
 count
-------
     7
(1 row)

📣 5.几何函数

【openGauss实战7】函数最佳实践_当前日期_05

【openGauss实战7】函数最佳实践_当前日期_06


【openGauss实战7】函数最佳实践_数据类型_07