這里只記錄平時(shí)常用到的函數(shù)
- 字符串函數(shù)
select ltrim(' str'),rtrim(' str '),trim(' str ');#去除空格函數(shù)
select replace('abcdefbc','bc','xx'); #替換所有bc字符為xx
select substring('this is a string',2,5);#從第2個(gè)字符開始,取5個(gè)字符
select left('string',3),right('string',2);#獲取字符最左/右邊的 n 個(gè)字符
select position('ef' in 'abcdefg'); #返回字符串a(chǎn)bc在后面字符串中開始的位置
select char_length('date'); #計(jì)算字符串字符個(gè)數(shù),多字節(jié)字符算一個(gè)字符,即一個(gè)英文字符和一個(gè)中文字符都算作一個(gè)字符
select length('string');#計(jì)算字符串的字節(jié)長(zhǎng)度,使用utf8編碼,一個(gè)中文是3個(gè)字節(jié)
select concat('postgre','SQL');#連接字符串函數(shù)
select concat('-','postgre','SQL');#使用 “-” 作為分隔符連接后面的字符串
- 日期和時(shí)間函數(shù)
select current_timestamp,localtimestamp,now(); #返回當(dāng)前日期和時(shí)間,localtimestamp不帶時(shí)區(qū)
select extract(day from timestamp '2015-10-07 22:22:22'); #結(jié)果 07
select extract(month from timestamp '2015-10-07 22:22:22');#結(jié)果 10
select extract(year from timestamp '2015-10-07 22:22:22');#結(jié)果 2015
select extract(quarter from timestamp '2015-10-07 22:22:22');#結(jié)果 4吠式,季度
select extract(DOY from timestamp '2015-10-07 22:22:22');
#DOY=day of year 返回指定日期是一年中的第幾天
#DOW=day of week 返回指定日期是一周中的第幾天,范圍為0~6
日期和時(shí)間運(yùn)算操作
select date '2015-9-28' + integer '10'; 指定日期加上間隔天數(shù) 結(jié)果(2015-10-08)
select date '2015-10-07' + interval '3 hour'; 指定日期加上間隔小時(shí) 結(jié)果(2015-10-07 03:00:00)
select date '2015-10-07' + time '22:00';結(jié)果(2015-10-07 22:00:00)
select timestamp '2015-10-07 12:10:00'+interval '10 hours';結(jié)果(2015-10-07 22:10:00)
select date '2015-10-07' - date '2015-10-01';#日期相減計(jì)算間隔天數(shù)
- 數(shù)據(jù)類型轉(zhuǎn)換函數(shù)
select cast(2345 as char(30));#將2345轉(zhuǎn)換為char字符串 - 數(shù)學(xué)函數(shù)
select abs(-2),abs(2); # abs 絕對(duì)值函數(shù)
select pi(); #取圓周率π的值牡整,默認(rèn)小數(shù)位數(shù)6位
select mod(7,3),mod(8,5); #mod 取余函數(shù)
select round(1.333),round(1.5),round(2.36,1); #四舍五入函數(shù),第二個(gè)參數(shù)為保留小數(shù)點(diǎn)后位數(shù)
select sign(-21),sign(0),sign(21);#符號(hào)函數(shù),參數(shù)值為負(fù)/零/正時(shí),返回結(jié)果 -1/0/1
- 加密函數(shù)
select MD5 ('my pwd');#md5加密函數(shù)
select encode('str','pwd');#使用pwd加密str字符串
select decode(encode('str','pwd'),'pwd')#解密由encode加密過的字符串
- 條件函數(shù)
select case 2 when 1 then 'one' when 2 then 'two' else 'unknown' end;
select case when 1<0 then 'true' else 'false' end;