数学函数

常用数学函数
 名称 函数 举例
求绝对值 ABS(num) SELECT ABS(2);
返回圆周率值 pi() SELECT pi();
求平方根 SQRT(num) SELECT SQRT(9);
求余运算 MOD(a,b) SELECT MOD(31,8);  //7
向上取整(返回最小整数) CEIL(num) SELECT  CEIL(-3.35),CEILING(3.35);
向下取整(返回最大整数) FLOOR(num) SELECT FLOOR(-3.35), FLOOR(3.35);
四舍五入 ROUND(x) SELECT ROUND(-1.14);
四舍五入(保留小数点后面指定y位) ROUND(x,y) SELECT ROUND(1.38, 1), ROUND(1.38, 0); //1.41 1
SELECT ROUND(232.38, -1), ROUND (232.38,-2); //230 200
返回参数的符号 SIGN(num) SELECT SIGN(-21),SIGN(0), SIGN(21);
乘方运算 POW(a,b) SELECT POW(2,2), POWER(2,2);
计算e的乘方 EXP(x) SELECT EXP(3),EXP(-3),EXP(0);
计算自然对数 LOG(x) SELECT LOG(3);
三角函数与反三角函数
将角度转换为弧度 RADIANS(x) SELECT RADIANS(90),RADIANS(180);
将弧度转换为角度 DEGREES(rad) SELECT DEGREES(PI()), DEGREES(PI() / 2);
计算正弦值 SIN(x) SELECT SIN(1), ROUND(SIN(PI()));
计算反正弦值 ASIN(x) SELECT ASIN(0.8414709848078965);
计算余弦值 COS(x) SELECT COS(0),COS(PI()),COS(1);
计算反余弦值 ACOS(x) SELECT ACOS(1),ACOS(0);
计算正切值 TAN(x) SELECT TAN(0.3), ROUND(TAN(PI()/4));
计算反正切值 ATAN(x) SELECT ATAN(0.324960962325), ATAN(1);
计算余切值 COT(x) SELECT COT(0.3), 1/TAN(0.3),COT(PI() / 4);

字符串函数

名称

函数 举例 返回值
计算字符串字符个数(不包括空格) CHAR_LENGTH(‘str’) SELECT CHAR_LENGTH(‘date’); 3
计算字符串长度 LENGTH(‘str’) SELECT LENGTH(‘egg’); 3
SELECT LENGTH(‘eg g’); 4
连接字符串 CONCAT(‘str1′,’str2’) SELECT CONCAT(‘PostgreSQL’, ’13’); PostgreSQL13
SELECT CONCAT(‘Postgre’,NULL, ‘SQL’); PostgreSQL
连接带自定义分隔符的字符串 CONCAT_WS(‘连接符号’,’……) SELECT CONCAT_WS(‘-‘, ‘1st’,’2nd’, ‘3rd’); 1st-2nd-3rd
返回字符串中左边n个字符 SELECT LEFT(‘str’, n); SELECT LEFT(‘football’, 5); footb
返回字符串中右边n个字符 SELECT RIGHT(‘str’, n); SELECT RIGHT(‘football’, 5); tball
对字符串进行填充操作 SELECT LPAD(‘str’,n,’s’); SELECT LPAD(‘hello’,10,’?!’); ?!?!?hello
SELECT LPAD(‘hello’,10,’!’); !!!!!hello
删除字符串左边的空格 LTRIM(‘str’) SELECT CONCAT(‘(‘, LTRIM (‘  book  ‘),’)’); (book  )
删除字符串右边的空格 RTRIM(‘str’) SELECT CONCAT(‘(‘, RTRIM (‘  book  ‘),’)’); (  book)
删除指定字符串两端的空格 TRIM(‘str’) SELECT CONCAT(‘(‘, TRIM(‘  book  ‘),’)’); (book)
删除字符串中两端指定的字符 TRIM(s1 FROM s) —– —-
重复生成相同的字符串 SELECT REPEAT(‘str’, n); SELECT REPEAT(‘Pos’, 3); PosPosPos
字符串替代操作 SELECT REPLACE(‘str’, ‘s1’, ‘s2’); SELECT REPLACE(‘abcd’, ‘ab’, ’11’); 11cd
获取指定位置处的子字符串 SELECT SUBSTRING(‘str’,n); SELECT SUBSTRING(‘breakfast’,5); kfast
查找字符串中指定子字符串的开始位置 SELECT POSITION(‘sub’IN ‘str’); SELECT POSITION(‘ball’IN ‘football’); 5

反转字符串

SELECT REVERSE(‘str’); SELECT REVERSE(‘abc’);

cba

日期和时间函数

详细

作用 函数 举例 返回值(其实没有分行,是位置不够)
获取系统当期日期 CURRENT_DATE SELECT CURRENT_DATE; 2020-10-04
获取系统当期时间(含时区) CURRENT_TIME SELECT CURRENT_TIME; 19:40:34.586045+08:00
获取系统当期时间(不含时区) LOCALTIME SELECT LOCALTIME; 19:40:34.586045
获取系统当期日期+时间 CURRENT_TIMESTAMP SELECT CURRENT_TIMESTAMP; 2020-10-04 19:44:49.802905+08
LOCALTIMESTAMP SELECT LOCALTIMESTAMP; 2020-10-04 19:44:49.802905
NOW() SELECT NOW(); 2020-10-04 19:44:49.802905+08

作用 举例 返回值
从月份中提取日 SELECT EXTRACT(DAY FROM TIMESTAMP ‘2020-10-4 10:18:40’); 4
从月份中提取月份 SELECT EXTRACT(MONTH FROM TIMESTAMP ‘2020-10-4 10:18:40’); 10
从月份中提取年份 SELECT EXTRACT(YEAR  FROM TIMESTAMP ‘2020-10-4 10:18:40’); 2020
查询指定日期是一年中的第几天 SELECT EXTRACT(DOY FROM TIMESTAMP ‘2020-10-4 10:18:40’); 278
查询指定日期是一周中的星期几 SELECT EXTRACT(DOW  FROM TIMESTAMP ‘2020-10-04 10:18:40’); 0
查询指定日期是该年的第几季度(1-4) SELECT EXTRACT(QUARTER FROM TIMESTAMP ‘2020-10-04 10:18:40’); 4

备注:EXTRACT的详细用法

日期和时间函数

注意:

名字 存储空间 描述 最低值 最高值 分辨率
timestamp [ (p) ] [ without time zone ] 8 字节 日期和时间 4713 BC 5874897 AD 1 毫秒 / 14 位
timestamp [ (p) ] with time zone 8 字节 日期和时间,带时区 4713 BC 5874897 AD 1 毫秒 / 14 位
interval [ (p) ] 12 字节 时间间隔 -178000000 年 178000000 年 1 毫秒 / 14 位
date 4 字节 只用于日期 4713 BC 5874897 AD 1 天
time [ (p) ] [ without time zone ] 8 字节 只用于一日内时间 00:00:00 24:00:00 1 毫秒 / 14 位
time [ (p) ] with time zone 12 字节 只用于一日内时间,带时区 00:00:00+1459 24:00:00-1459 1 毫秒 / 14 位

 

作用 举例 返回值
指定日期加上间隔小时 SELECT DATE ‘2020-10-04’ + interval ‘3 hour’; 2020-10-04 03:00:00
定日期加上指定时间 SELECT DATE ‘2020-10-04′ + time[or interval] ’06:00’; 2020-10-04 06:00:00
指定日期和时间加上间隔时间 SELECT TIMESTAMP ‘2020-10-04 02:00:00′ + interval ’10 hours’; 2020-10-04 12:00:00
指定日期之间的间隔天数 SELECT date ‘2020-10-14’ – date ‘2020-10-04’; 10
计算指定日期减去间隔天数后的结果 SELECT DATE ‘2020-10-04′ – integer ’10’; 2020-09-24
计算整数与天数相乘的结果 SELECT 15 * interval ‘2 day’; 30
计算整数与秒数相乘的结果 SELECT 50 * interval ‘2 second’; 00:01:40
计算小时数与整数相乘的结果 SELECT interval ‘1 hour’ / [integer]’2′; 00:30:00

条件判断函数

  • CASE value WHEN语句

举个例子:

SELECT 
         CASE 2
            WHEN 1
                THEN 'one'
            WHEN 2
                THEN 'two'
            ELSE 'more'
            END; 
//输出: two

语句:

SELECT 
         CASE [value]
            WHEN condition-1
                THEN statement-1
            WHEN condition-2
                THEN statement-2
            WHEN condition-n
                THEN statement-n
            ELSE statement
            END;

举第二个例子:

SELECT 
    CASE 
        WHEN 1<0 
            THEN 'true' 
        ELSE 'false' 
    END;
//输出: false

系统信息函数

作用 函数 返回值
查看当前PostgreSQL版本号 SELECT VERSION(); PostgreSQL 13beta3, compiled by Visual C++ build 1914, 64-bit
获取当前登陆用户名称 SELECT USER, CURRENT_USER; postgres
SELECT CURRENT_USER; postgres

加密函数

我不相信考试会考到: (

改变数据类型的函数

  • 使用CAST函数进行数据类型的转换
函数 返回值
SELECT CAST(1234 AS CHAR(1)); 1
SELECT CAST(1234 AS CHAR(2)); 2
SELECT CAST(1234 AS CHAR(3)); 123
SELECT CAST(1234 AS CHAR(4)); 1234
SELECT CAST(1234 AS CHAR(5)); 1234

Comments are closed

2020年十月
« 9月    
 1234
567891011
12131415161718
19202122232425
262728293031