[GreenPlum] 2.常用函数操作符

总结自PostgreSQL 8.1中文文档

一、数据类型格式化函数

Table 9-20. 格式化函数

函数

返回类型

描述

例子

to_char(timestamp, text)

text

把时间戳转换成字串

to_char(current_timestamp, ‘HH12:MI:SS’)

to_char(interval, text)

text

把时间间隔转为字串

to_char(interval ’15h 2m 12s’, ‘HH24:MI:SS’)

to_char(int, text)

text

把整数转换成字串

to_char(125, ‘999’)

to_char(double precision, text)

text

把实数/双精度数转换成字串

to_char(125.8::real, ‘999D9’)

to_char(numeric, text)

text

numeric 转换成字串

to_char(-125.8, ‘999D99S’)

to_date(text, text)

date

把字串转换成日期

to_date(’05 Dec 2000′, ‘DD Mon YYYY’)

to_timestamp(text, text)

timestamp with time zone

把字串转换成时间戳

to_timestamp(’05 Dec 2000′, ‘DD Mon YYYY’)

to_timestamp(double precision)

timestamp with time zone

UNIX 纪元转换成时间戳

to_timestamp(200120400)

to_number(text, text)

numeric

把字串转换成 numeric

to_number(‘12,454.8-‘, ’99G999D9S’)

二、时间/日期函数和操作符

Table 9-25. 日期/时间操做符

操作符

例子

结果

+

date ‘2001-09-28’ + integer ‘7’

date ‘2001-10-05’

+

date ‘2001-09-28’ + interval ‘1 hour’

timestamp ‘2001-09-28 01:00’

+

date ‘2001-09-28′ + time ’03:00’

timestamp ‘2001-09-28 03:00’

+

interval ‘1 day’ + interval ‘1 hour’

interval ‘1 day 01:00’

+

timestamp ‘2001-09-28 01:00′ + interval ’23 hours’

timestamp ‘2001-09-29 00:00’

+

time ’01:00′ + interval ‘3 hours’

time ’04:00′

– interval ’23 hours’

interval ‘-23:00’

date ‘2001-10-01’ – date ‘2001-09-28’

integer ‘3’

date ‘2001-10-01’ – integer ‘7’

date ‘2001-09-24’

date ‘2001-09-28’ – interval ‘1 hour’

timestamp ‘2001-09-27 23:00’

time ’05:00′ – time ’03:00′

interval ’02:00′

time ’05:00′ – interval ‘2 hours’

time ’03:00′

timestamp ‘2001-09-28 23:00′ – interval ’23 hours’

timestamp ‘2001-09-28 00:00’

interval ‘1 day’ – interval ‘1 hour’

interval ’23:00′

timestamp ‘2001-09-29 03:00’ – timestamp ‘2001-09-27 12:00’

interval ‘1 day 15:00’

*

interval ‘1 hour’ * double precision ‘3.5’

interval ’03:30′

/

interval ‘1 hour’ / double precision ‘1.5’

interval ’00:40′

Table 9-26. 日期/时间函数

函数

返回类型

描述

例子

结果

age(timestamp, timestamp)

interval

减去参数,生成一个使用年、月的符号化的结果

age(‘2001-04-10’, timestamp ‘1957-06-13’)

43 years 9 mons 27 days

age(timestamp)

interval

current_date减去得到的数值

age(timestamp ‘1957-06-13’)

43 years 8 mons 3 days

current_date

date

今天的日期;见 Section 9.9.4

current_time

time with time zone

现在的时间;见 Section 9.9.4

current_timestamp

timestamp with time zone

日期和时间;见 Section 9.9.4

date_part(text, timestamp)

double precision

获取子域(等效于 extract);又见 Section 9.9.1

date_part(‘hour’, timestamp ‘2001-02-16 20:38:40’)

20

date_part(text, interval)

double precision

获取子域(等效于 extract);又见 Section 9.9.1

date_part(‘month’, interval ‘2 years 3 months’)

3

date_trunc(text, timestamp)

timestamp

截断成指定的精度;又见Section 9.9.2

date_trunc(‘hour’, timestamp ‘2001-02-16 20:38:40’)

2001-02-16 20:00:00+00

extract(field from timestamp)

double precision

获取子域;又见 Section 9.9.1

extract(hour from timestamp ‘2001-02-16 20:38:40’)

20

extract(field from interval)

double precision

获取子域;又见 Section 9.9.1

extract(month from interval ‘2 years 3 months’)

3

isfinite(timestamp)

boolean

测试有穷时间戳(非无穷)

isfinite(timestamp ‘2001-02-16 21:28:30’)

true

isfinite(interval)

boolean

测试有穷时间间隔

isfinite(interval ‘4 hours’)

true

localtime

time

今日的时间;见 Section 9.9.4

localtimestamp

timestamp

日期和时间;见 Section 9.9.4

now()

timestamp with time zone

当前的日期和时间(等效于 current_timestamp);见Section 9.9.4

timeofday()

text

当前日期和时间;见Section 9.9.4

 

三、网络地址类型函数和操作符

Table 9-31. cidr  inet 操作符

操作符

描述

例子

<

小于吗

inet ‘192.168.1.5’ < inet ‘192.168.1.6’

<=

小于或等于

inet ‘192.168.1.5’ <= inet ‘192.168.1.5’

=

等于

inet ‘192.168.1.5’ = inet ‘192.168.1.5’

>=

大于或等于

inet ‘192.168.1.5’ >= inet ‘192.168.1.5’

>

大于

inet ‘192.168.1.5’ > inet ‘192.168.1.4’

<>

不等于

inet ‘192.168.1.5’ <> inet ‘192.168.1.4’

<<

包含于

inet ‘192.168.1.5’ << inet ‘192.168.1/24’

<<=

包含于或等于

inet ‘192.168.1/24’ <<= inet ‘192.168.1/24’

>>

包含

inet ‘192.168.1/24’ >> inet ‘192.168.1.5’

>>=

包含或等于

inet ‘192.168.1/24’ >>= inet ‘192.168.1/24’

Table 9-32 显示了所有可以用于 cidr  inet 的函数。 函数 hosttext  abbrev 主要是为了提供可选的显示格式用的。 你可以用普通的类型转换语法∶ inet(expression或者 colname::inet 把一个文本数域转换成inet

Table 9-32. cidr  inet 函数

函数

返回类型

描述

例子

结果

broadcast(inet)

inet

网络广播地址

broadcast(‘192.168.1.5/24’)

192.168.1.255/24

host(inet)

text

将主机地址类型抽出为文本

host(‘192.168.1.5/24’)

192.168.1.5

masklen(inet)

int

抽取网络掩码长度

masklen(‘192.168.1.5/24’)

24

set_masklen(inet,int)

inet

inet数值设置网络掩码长度

set_masklen(‘192.168.1.5/24’,16)

192.168.1.5/16

netmask(inet)

inet

为网络构造网络掩码

netmask(‘192.168.1.5/24’)

255.255.255.0

hostmask(inet)

inet

为网络构造主机掩码

hostmask(‘192.168.23.20/30’)

0.0.0.3

network(inet)

cidr

抽取地址的网络部分

network(‘192.168.1.5/24’)

192.168.1.0/24

text(inet)

text

IP 地址和掩码长度抽取为文本

text(inet ‘192.168.1.5’)

192.168.1.5/32

abbrev(inet)

text

抽取缩写显示为文本

abbrev(cidr ‘10.1.0.0/16’)

10.1/16

family(inet)

int

抽取地址族 4 for IPv4, 6 for IPv6

family(‘::1’)

6

 

四、网络地址类型函数和操作符

分类上一篇:     分类下一篇:

Leave a Reply