📢📢📢📣📣📣 哈喽!大家好,我是【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.字符函数
字符处理函数和操作符
⚫ 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.数值函数
📣 3.时间和日期
✨ 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
✨ 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.几何函数