Greenplum数据库使用总结-常用函数

8 Greenplum常用函数

8.1字符串函数

8.1.1常见字符串函数

8.1.2函数常见示例

8.1.2.1字符串拼接

chinadaas=# \timing

Timing is on.

chinadaas=# select 'green'||'plum' as dbname;

dbname

-----------

greenplum

(1 row)

Time: 33.768 ms

\timing 是开启执行时间,可以看出与oracle的用法一直

8.1.2.2查看字符串的长度

chinadaas=# select length('greenplum');

length

--------

9

(1 row)

Time: 7.212 ms

可以看出是索引是从1开始计算的

8.1.2.3查看字符在字符串的位置

chinadaas=# select position('plum' in 'greenplum');

position

----------

6

(1 row)

Time: 7.424 ms

在以上的结果中可以看出索引是在1开始计算的

8.1.2.4在制定的位置截取字符串

chinadaas=# select substring('greenplum' from 6 for 4);

substring

-----------

plum

(1 row)

Time: 7.362 ms

在以上可以看出位置是从1开始计算的,for 4 是向后截取多少位

8.1.2.5删除字符串的制定字符

chinadaas=# select trim(both 'x' from 'xgreenplumxx');

btrim

-----------

greenplum

(1 row)

Time: 7.250 ms

使用关键字both 与from相关联删除字符串中的数据

8.1.2.6字符串转大小写

转大写

chinadaas=# select upper('greenplum');

upper

-----------

GREENPLUM

(1 row)

Time: 9.703 ms

转小写

chinadaas=# select lower('GREENPLUM');

lower

-----------

greenplum

(1 row)

Time: 7.324 ms

8.1.2.7替换制定的字符串

按照索引位置替换

chinadaas=# select overlay('greenxxxm' placing 'plu' from 6 for 3);

overlay

-----------

greenplum

(1 row)

Time: 15.349 ms

使用关键字替换

chinadaas=# select replace('greenplum','plum','xxx');

replace

----------

greenxxx

(1 row)

Time: 9.509 ms

在以上可以看出替换还是比较简单的

8.1.2.8按照分隔符分割字符串

chinadaas=# select split_part('abc|def|ght','|',3);

split_part

------------

ght

(1 row)

Time: 7.254 ms

在以上的结果中可以看出分割是以索引1开始计算的

8.2日期及时间函数

8.2.1常见日期及时间函数

8.2.2函数常见使用

8.2.2.1查看两个日期的

chinadaas=# \timing

Timing is on.

chinadaas=# select age('20181207','20181201');

age

--------

6 days

(1 row)

Time:7.844 ms

chinadaas=# select age(timestamp '20181201');

age

--------

6 days

(1 row)

Time: 5.644 ms

第一行的是开始时间显示,可以看出比较两个时间的差异还是比较方便的,也可以计算当前的时间相差值

8.2.2.2查看当前的日期

chinadaas=# select current_date;

date

------------

2018-12-07

(1 row)

Time: 4.614 ms

8.2.2.3获取当前的时间

chinadaas=# select current_time;

timetz

--------------------

15:21:29.245372+08

(1 row)

Time: 5.214 ms

查看数据可以看出精确到毫秒

8.2.2.4获取精确的时间戳

chinadaas=# select current_timestamp;

now

------------------------------

2018-12-07 15:22:42.59494+08

(1 row)

Time: 7.214 ms

8.2.2.5获取时间戳的制定参数

以下获取的小时

chinadaas=# select date_part('hour',timestamp'2018-11-07 11:07:30');

date_part

-----------

11

(1 row)

Time: 7.083 ms

以下获取的是分钟

chinadaas=# select date_part('minute',timestamp'2018-11-07 11:07:30');

date_part

-----------

7

(1 row)

Time: 7.209 ms

以下获取的是秒

chinadaas=# select date_part('second',timestamp'2018-11-07 11:07:30');

date_part

-----------

30

(1 row)

Time: 9.551 ms

以下是获取年

chinadaas=# select date_part('year',timestamp'2018-11-07 11:07:30');

date_part

-----------

2018

(1 row)

Time: 7.246 ms

以下是获取月

chinadaas=# select date_part('month',timestamp'2018-11-07 11:07:30');

date_part

-----------

11

(1 row)

Time: 7.271 ms

以下获取的是天

chinadaas=# select date_part('day',timestamp'2018-11-07 11:07:30');

date_part

-----------

7

(1 row)

Time: 7.314 ms

在以上参数中可以看出参数可以为:year , month , day , hour , minute , second

也可以使用以下语句获取时间的差异

chinadaas=# select extract(hourfrom timestamp '20181207 10:07:30');

date_part

-----------

10

(1 row)

Time: 7.347 ms

以上的参数也可以使用:year , month , day , hour , minute , second

8.2.2.6获取当前的时间戳

chinadaas=# select now();

now

------------------------------

2018-12-07 15:38:49.08221+08

(1 row)

Time: 9.838 ms

8.2.2.7获取当前的时间

chinadaas=# select LOCALTIME;

time

-----------------

15:43:38.282021

(1 row)

Time: 9.423 ms

8.2.2.8获取当前的时间戳

chinadaas=# select LOCALTIMESTAMP;

timestamp

----------------------------

2018-12-07 15:47:49.748872

(1 row)

Time: 9.545 ms

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190104G16JT900?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励