📚 目录

  1. 概述
  2. 字符串函数
  3. 数学函数
  4. 日期/时间函数
  5. 聚合函数
  6. 转换函数
  7. 其他常用函数
  8. 参考资料

🛠️ 概述

PostgreSQL 提供了丰富的内置函数,允许用户对数据进行各种操作。这些函数涵盖了从字符串、日期、数学到聚合等各个方面。掌握这些函数可以大大提高数据处理和分析的效率。

下面介绍一些 PostgreSQL 中常用的函数,帮助用户更好地进行日常操作。


📝 字符串函数

CONCAT()

CONCAT() 函数用于将多个字符串连接成一个字符串。

SELECT CONCAT('Hello', ' ', 'World');  -- 返回 'Hello World'

LENGTH()

LENGTH() 函数返回字符串的长度(字符数)。

SELECT LENGTH('Hello World');  -- 返回 11

UPPER() 和 LOWER()

UPPER()LOWER() 函数分别用于将字符串转换为大写和小写。

SELECT UPPER('hello');  -- 返回 'HELLO'
SELECT LOWER('WORLD');  -- 返回 'world'

TRIM()

TRIM() 函数用于去掉字符串两端的空格或指定字符。

SELECT TRIM(' ' FROM '   Hello World   ');  -- 返回 'Hello World'


📝 数学函数

ROUND()

ROUND() 函数用于将数字四舍五入到指定的小数位数。

SELECT ROUND(123.4567, 2);  -- 返回 123.46

CEIL() 和 FLOOR()

  • CEIL() 函数用于返回大于或等于给定数字的最小整数。
  • FLOOR() 函数用于返回小于或等于给定数字的最大整数。
SELECT CEIL(123.45);  -- 返回 124
SELECT FLOOR(123.45);  -- 返回 123

RANDOM()

RANDOM() 函数返回一个 0 到 1 之间的随机浮动值。

SELECT RANDOM();  -- 返回一个随机数,如 0.123456789


📝 日期/时间函数

NOW() 和 CURRENT_TIMESTAMP

NOW()CURRENT_TIMESTAMP 函数返回当前的日期和时间。

SELECT NOW();  -- 返回当前时间,如 '2025-04-08 12:30:00'
SELECT CURRENT_TIMESTAMP;  -- 返回当前时间,与 NOW() 相同

AGE()

AGE() 函数用于计算两个时间戳之间的差值。

SELECT AGE(TIMESTAMP '2025-04-08', TIMESTAMP '2020-04-08');  -- 返回 '5 years 0 mons'

EXTRACT()

EXTRACT() 函数用于从日期或时间中提取指定部分,如年、月、日等。

SELECT EXTRACT(YEAR FROM NOW());   -- 返回当前年份
SELECT EXTRACT(MONTH FROM NOW());  -- 返回当前月份


📝 聚合函数

COUNT()

COUNT() 函数用于返回某列的行数或某个条件下的行数。

SELECT COUNT(*) FROM employees;  -- 返回表中所有行的数量
SELECT COUNT(employee_id) FROM employees WHERE salary > 50000;  -- 返回薪水大于 50000 的员工数量

SUM()

SUM() 函数用于计算某一列所有值的总和。

SELECT SUM(salary) FROM employees;  -- 返回所有员工薪水的总和

AVG()

AVG() 函数用于计算某一列所有值的平均值。

SELECT AVG(salary) FROM employees;  -- 返回所有员工薪水的平均值


📝 转换函数

CAST()

CAST() 函数用于将一个数据类型转换为另一个数据类型。

SELECT CAST('2025-04-08' AS DATE);  -- 将字符串转换为日期类型
SELECT CAST(123.45 AS INT);  -- 将浮动数字转换为整数

TO_CHAR()

TO_CHAR() 函数用于将日期或数字转换为指定格式的字符串。

SELECT TO_CHAR(NOW(), 'YYYY-MM-DD HH24:MI:SS');  -- 将当前时间格式化为字符串


📝 其他常用函数

COALESCE()

COALESCE() 函数返回列表中第一个非 NULL 的值。

SELECT COALESCE(NULL, NULL, 'Hello', 'World');  -- 返回 'Hello'

NULLIF()

NULLIF() 函数比较两个值,如果它们相等,则返回 NULL,否则返回第一个值。

SELECT NULLIF(5, 5);  -- 返回 NULL
SELECT NULLIF(5, 6);  -- 返回 5


📘 参考资料