字符操作函数
- length(string bytea, encoding name )
描述:指定encoding编码格式的string的字符数。在这个编码格式中,string必须是有效的。
返回值类型:int
SELECT length('jose', 'UTF8');
/*
length
--------
4
(1 row)
*/
- substring(string [from int] [for int])
描述:截取子字符串,from int表示从第几个字符开始截取,for int表示截取几个字节。
返回值类型:text
-- 从第二个开始截取 共截取三个
SELECT substring('Thomas' from 2 for 3);
/*
substring
-----------
hom
(1 row)
*/
-- 正则截取
SELECT substring('Thomas of' from '.+om');
/*
substring
-----------
Thom
(1 row)
*/
- repeat(string text, number int )
描述:将string重复number次。
返回值类型:text
SELECT repeat('hei',2);
/*
repeat
--------
heihei
(1 row)
*/
- replace(string text, from text, to text)
描述:把字符串string里出现地所有子字符串from的内容替换成子字符串to的内容。
返回值类型:text
SELECT replace('abcdefabcdef', 'cd', 'XXX');
/*
replace
----------------
abXXXefabXXXef
(1 row)
*/
- reverse(string text)
描述:字符串反转
返回值类型:text
SELECT reverse('abcdefg');
/*
reverse
---------
gfedcba
(1 row)
*/
- substr(string,from)
描述:
从参数string中抽取子字符串。
from表示抽取的起始位置。
- from为0时,按1处理。
- from为正数时,抽取从from到末尾的所有字符。
- from为负数时,抽取字符串的后n个字符,n为from的绝对值。
返回值类型:varchar
SELECT substr('ABCDEF',2);
/*
substr
--------
BCDEF
(1 row)
*/
SELECT substr('ABCDEF',-2);
/*
substr
--------
EF
(1 row)
*/
- upper(string)
描述:把字符串转化为大写。
返回值类型:varchar
SELECT upper('tom');
/*
upper
-------
TOM
(1 row)
*/
- Lower(string)
描述:把字符串转化为小写。
返回值类型:varchar
SELECT upper('tom');
/*
upper
-------
TOM
(1 row)
*/
- concat(str1,str2)
描述:将字符串str1和str2连接并返回。
返回值类型:varchar
SELECT concat('Hello', ' World!');
/*
concat
--------------
Hello World!
(1 row)
*/
SELECT concat('Hello', ' World!',null);
/*
concat
--------------
Hello World!
(1 row)
*/
concat_ws(sep text, str"any" [, str"any" [, ...] ])
描述:以第一个参数为分隔符,链接第二个以后的所有参数。
返回值类型:text
SELECT concat_ws('_','Hello', 'World');
/*
concat_ws
-------------
Hello_World
(1 row)
*/
SELECT concat_ws('_','Hello', 'World',null);
/*
concat_ws
-------------
Hello_World
(1 row)
*/
- md5(string)
描述:将string使用MD5加密,并以16进制数作为返回值。
返回值类型:text
SELECT md5('ABC');
/*
md5
----------------------------------
902fbdd2b1df0c4f70b4a5d23525e932
(1 row)
*/
时间日期函数
- age(timestamp, timestamp)
描述:将两个参数相减,并以年、月、日作为返回值。若相减值为负,则函数返回亦为负。
返回值类型:interval
SELECT age(timestamp '2001-04-10', timestamp '1957-06-13');
/*
age
-------------------------
43 years 9 mons 27 days
(1 row)
*/
- age(timestamp)
描述:当前时间和参数相减。
返回值类型:interval
SELECT age(timestamp '1957-06-13');
/*
age
--------------------------
63 years 11 mons 26 days
(1 row)
*/
- clock_timestamp()
描述:实时时钟的当前时间戳。
返回值类型:timestamp with time zone
SELECT clock_timestamp();
/*
clock_timestamp
-------------------------------
2021-06-09 01:24:36.726657-07
(1 row)
*/
- current_date
描述:当前日期。
返回值类型:date
SELECT current_date;
/*
date
------------
2021-06-09
(1 row)
*/
- current_time
描述:当前时间。
返回值类型:time with time zone
SELECT current_time;
/*
timetz
--------------------
01:26:04.553669-07
(1 row)
*/
- current_timestamp
描述:当前日期及时间。
返回值类型:timestamp with time zone
SELECT current_timestamp;
/*
pg_systimestamp
-------------------------------
2021-06-09 01:26:55.812076-07
(1 row)
*/
- date_part(text, timestamp)
描述:获取小时的值。
等效于extract(field from timestamp)。
返回值类型:double precision
SELECT date_part('hour', timestamp '2001-02-16 20:38:40');
/*
date_part
-----------
20
(1 row)
*/
SELECT date_part('day', timestamp '2001-02-16 20:38:40');
/*
date_part
-----------
16
(1 row)
*/
SELECT date_part('month', timestamp '2001-02-16 20:38:40');
/*
date_part
-----------
2
(1 row)
*/
SELECT date_part('year', timestamp '2001-02-16 20:38:40');
/*
date_part
-----------
2001
(1 row)
*/
- trunc(timestamp)
描述:默认按天截取。
trunc(float)的时候则为取整数部分(不进行四舍五入计算)
SELECT trunc(timestamp '2001-02-16 20:38:40');
/*
trunc
---------------------
2001-02-16 00:00:00
(1 row)
*/
SELECT trunc(1.522);
/*
trunc
-------
1
(1 row)
*/
- localtime
描述:当前时间。
返回值类型:time
SELECT localtime;
/*
time
-----------------
01:46:21.961536
(1 row)
*/
- localtimestamp
描述:当前日期及时间。
返回值类型:timestamp
SELECT localtimestamp;
/*
timestamp
----------------------------
2021-06-09 01:46:13.423419
(1 row)
*/
海汼部落原创文章,原文链接:(
http://hainiubl.com/topics/75658)