ARRAY 函数:用于输入值(包括null)添加到数组中。
Numeric 函数:完整列出一个 SQL 中所需的操作数的函数。
String 函数:完整列出一个 SQL 中所需的操作字符的函数。
下面是PostgreSQL中提供的数学函数列表,需要说明的是,这些函数中有许多都存在多种形式,区别只是参数类型不同。除非特别指明,任何特定形式的函数都返回和它的参数相同的数据类型。
abs(x)
abs(-17.4)
cbrt(double)
cbrt(27.0)
ceil(double/numeric)
不小于参数的最小的整数
ceil(-42.8)
degrees(double)
把弧度转为角度
degrees(0.5)
28.6478897565412
exp(double/numeric)
exp(1.0)
2.71828182845905
floor(double/numeric)
不大于参数的最大整数
floor(-42.8)
ln(double/numeric)
ln(2.0)
0.693147180559945
log(double/numeric)
10为底的对数
log(100.0)
log(b numeric,x numeric)
numeric
指定底数的对数
log(2.0, 64.0)
6.0000000000
mod(y, x)
mod(9,4)
double
"π"常量
3.14159265358979
power(a double, b double)
double
求a的b次幂
power(9.0, 3.0)
power(a numeric, b numeric)
numeric
求a的b次幂
power(9.0, 3.0)
radians(double)
double
把角度转为弧度
radians(45.0)
0.785398163397448
random()
double
0.0到1.0之间的随机数值
random()
round(double/numeric)
圆整为最接近的整数
round(42.4)
round(v numeric, s int)
numeric
圆整为s位小数数字
round(42.438,2)
42.44
sign(double/numeric)
参数的符号(-1,0,+1)
sign(-8.4)
sqrt(double/numeric)
sqrt(2.0)
1.4142135623731
trunc(double/numeric)
截断(向零靠近)
trunc(42.8)
trunc(v numeric, s int)
numeric
截断为s小数位置的数字
trunc(42.438,2)
42.43
三角函数列表
acos(x)
asin(x)
atan(x)
atan2(x, y)
正切 y/x 的反函数
cos(x)
cot(x)
sin(x)
tan(x)
字符串函数和操作符
下面是 PostgreSQL 中提供的字符串操作符列表:
string || string
'Post' 丨丨 'greSQL'
PostgreSQL
bit_length(string)
字串里二进制位的个数
bit_length('jose')
char_length(string)
字串中的字符个数
char_length('jose')
convert(string using conversion_name)
使用指定的转换名字改变编码。
convert('PostgreSQL' using iso_8859_1_to_utf8)
'PostgreSQL'
lower(string)
把字串转化为小写
lower('TOM')
octet_length(string)
字串中的字节数
octet_length('jose')
overlay(string placing string from int [for int])
替换子字串
overlay('Txxxxas' placing 'hom' from 2 for 4)
Thomas
position(substring in string)
指定的子字串的位置
position('om' in 'Thomas')
substring(string [from int] [for int])
抽取子字串
substring('Thomas' from 2 for 3)
substring(string from pattern)
抽取匹配 POSIX 正则表达式的子字串
substring('Thomas' from '…$')
substring(string from pattern for escape)
抽取匹配SQL正则表达式的子字串
substring('Thomas' from '%#"o_a#"_' for '#')
trim([leading丨trailing 丨 both] [characters] from string)
从字串string的开头/结尾/两边/ 删除只包含characters(默认是一个空白)的最长的字串
trim(both 'x' from 'xTomxx')
upper(string)
把字串转化为大写。
upper('tom')
ascii(text)
参数第一个字符的ASCII码
ascii('x')
btrim(string text [, characters text])
从string开头和结尾删除只包含在characters里(默认是空白)的字符的最长字串
btrim('xyxtrimyyx','xy')
chr(int)
给出ASCII码的字符
chr(65)
convert(string text, [src_encoding name,] dest_encoding name)
把字串转换为dest_encoding
convert( 'text_in_utf8', 'UTF8', 'LATIN1')
以ISO 8859-1编码表示的text_in_utf8
initcap(text)
把每个单词的第一个子母转为大写,其它的保留小写。单词是一系列字母数字组成的字符,用非字母数字分隔。
initcap('hi thomas')
Hi Thomas
length(string text)
string中字符的数目
length('jose')
lpad(string text, length int [, fill text])
通过填充字符fill(默认为空白),把string填充为长度length。 如果string已经比length长则将其截断(在右边)。
lpad('hi', 5, 'xy')
xyxhi
ltrim(string text [, characters text])
从字串string的开头删除只包含characters(默认是一个空白)的最长的字串。
ltrim('zzzytrim','xyz')
md5(string text)
计算给出string的MD5散列,以十六进制返回结果。
md5('abc')
repeat(string text, number int)
重复string number次。
repeat('Pg', 4)
PgPgPgPg
replace(string text, from text, to text)
把字串string里出现地所有子字串from替换成子字串to。
replace('abcdefabcdef', 'cd', 'XX')
abXXefabXXef
rpad(string text, length int [, fill text])
通过填充字符fill(默认为空白),把string填充为长度length。如果string已经比length长则将其截断。
rpad('hi', 5, 'xy')
hixyx
rtrim(string text [, character text])
从字串string的结尾删除只包含character(默认是个空白)的最长的字
rtrim('trimxxxx','x')
split_part(string text, delimiter text, field int)
根据delimiter分隔string返回生成的第field个子字串(1 Base)。
split_part('abc~@~def~@~ghi', '~@~', 2)
strpos(string, substring)
声明的子字串的位置。
strpos('high','ig')
substr(string, from [, count])
抽取子字串。
substr('alphabet', 3, 2)
to_ascii(text [, encoding])
把text从其它编码转换为ASCII。
to_ascii('Karel')
Karel
to_hex(number int/bigint)
把number转换成其对应地十六进制表现形式。
to_hex(9223372036854775807)
7fffffffffffffff
translate(string text, from text, to text)
把在string中包含的任何匹配from中的字符的字符转化为对应的在to中的字符。
translate('12345', '14', 'ax')
a23x5
类型转换相关函数
to_char(timestamp, text)
将时间戳转换为字符串
to_char(current_timestamp, 'HH12:MI:SS')
to_char(interval, text)
将时间间隔转换为字符串
to_char(interval '15h 2m 12s', 'HH24:MI:SS')
to_char(int, text)
整型转换为字符串
to_char(125, '999')
to_char(double precision, text)
双精度转换为字符串
to_char(125.8::real, '999D9')
to_char(numeric, text)
数字转换为字符串
to_char(-125.8, '999D99S')
to_date(text, text)
字符串转换为日期
to_date('05 Dec 2000', 'DD Mon YYYY')
to_number(text, text)
numeric
转换字符串为数字
to_number('12,454.8-', '99G999D9S')
to_timestamp(text, text)
timestamp
转换为指定的时间格式 time zone convert string to time stamp
to_timestamp('05 Dec 2000', 'DD Mon YYYY')
to_timestamp(double precision)
timestamp
把UNIX纪元转换成时间戳
to_timestamp(1284352323)