pgsql 的一些函数

正在使用pgsql,学了一下相关函数
做一下记录
pgsql时间相关函数:

-- SELECT age(timestamp '1984-02-16') ;
-- SELECT CURRENT_DATE;
-- SELECT CURRENT_TIME;
-- SELECT CURRENT_TIMESTAMP;
-- SELECT date_trunc('hour', timestamp '2001-02-16 20:38:40');
-- SELECT extract('hour' from timestamp '2001-02-16 20:38:40');
-- SELECT LOCALTIMESTAMP;
-- SELECT LOCALTIME;
-- SELECT now();
-- SELECT timeofday();
-- SELECT EXTRACT(doy FROM LOCALTIMESTAMP);
-- SELECT EXTRACT(epoch FROM CURRENT_DATE)*1000;
-- SELECT EXTRACT('hour' FROM LOCALTIMESTAMP);
-- SELECT date_part('hour', CURRENT_TIMESTAMP);
-- SELECT date_part('day', TIMESTAMP '2001-02-16 20:38:40');
-- SELECT EXTRACT(MILLISECONDS  from LOCALTIMESTAMP);
-- SELECT EXTRACT(SECOND from CURRENT_TIMESTAMP);
-- SELECT EXTRACT(MINUTE FROM LOCALTIMESTAMP);
-- SELECT date_part('MINUTE', LOCALTIMESTAMP);
-- 该天所在的季度
-- SELECT EXTRACT(quarter from LOCALTIMESTAMP);
-- 世纪
-- SELECT EXTRACT(CENTURY FROM TIMESTAMP '2000-12-16 12:21:13');

-- OVERLAPS:这个表达式在两个时间域(用它们的终点定义)重叠的时候生成真值。 
-- 终点可以以一对日期,时间,或者时间戳来声明;或者是一个后面跟着一个时间间隔的 日期,时间,时间戳。
-- SELECT (DATE '2001-02-16', DATE '2001-12-21') OVERLAPS (DATE '2001-10-30', DATE '2002-10-30');
-- Result: true
-- SELECT (DATE '2001-02-16', INTERVAL '100 days') OVERLAPS (DATE '2001-10-30', DATE '2002-10-30');
-- Result: false

– 查询0-1之间的随机数
SELECT random();

generate_series(start, stop) 生成一个数值序列,从 start 到 stop,步进为一。
generate_series(start, stop, step) 生成一个数值序列,从 start 到 stop,步进为 step。
例:

SELECT generate_series(0,100,5);
    SELECT generate_series(0,10);
### PostgreSQL 字符串拼接函数 PostgreSQL 提供了多种用于字符串拼接的函数和操作符,能够灵活地处理字符串连接操作。最常用的方式是使用 `||` 操作符,它支持多个字符串或列的连接[^1]。 #### 使用 `||` 操作符进行拼接 `||` 是 PostgreSQL 中最直观的字符串拼接操作符,可以用于连接两个或多个字符串值。例如: ```sql SELECT 'Hello' || ' ' || 'World'; -- 输出 "Hello World" ``` 该操作符也支持与列的拼接,例如将表中的多个字段合并为一个字符串: ```sql SELECT first_name || ' ' || last_name AS full_name FROM users; ``` 此查询将 `users` 表中的 `first_name` 和 `last_name` 字段拼接为完整姓名。 #### 使用 `CONCAT` 函数 除了 `||` 操作符,PostgreSQL 还提供了 `CONCAT` 函数用于拼接字符串。该函数支持多个参数,并自动忽略 `NULL` 值: ```sql SELECT CONCAT('PostgreSQL', ' ', '字符串拼接'); -- 输出 "PostgreSQL 字符串拼接" ``` 与 `||` 不同的是,`CONCAT` 函数在参数之间不会自动添加空格或其他分隔符,因此需要显式指定。 #### 使用 `CONCAT_WS` 函数 如果需要在拼接字符串时使用统一的分隔符,可以使用 `CONCAT_WS` 函数(“With Separator”的缩写)。该函数的第一个参数为分隔符,后续参数为需要拼接的内容: ```sql SELECT CONCAT_WS(', ', 'Apple', 'Banana', 'Cherry'); -- 输出 "Apple, Banana, Cherry" ``` 此函数在生成列表或 CSV 格式数据时非常有用。 ### 示例代码 以下是一个综合示例,展示如何在实际查询中使用这些拼接方式: ```sql -- 使用 || 拼接 SELECT 'Name: ' || name || ', Age: ' || age AS info FROM users; -- 使用 CONCAT 拼接 SELECT CONCAT('Name: ', name, ', Age: ', age) AS info FROM users; -- 使用 CONCAT_WS 拼接 SELECT CONCAT_WS(' - ', name, email, age::text) AS contact_info FROM users; ``` 在这些示例中,`||`、`CONCAT` 和 `CONCAT_WS` 分别展示了不同的拼接方式,适用于不同的业务需求。 ### 注意事项 - `||` 操作符在拼接过程中如果遇到 `NULL` 值,会直接忽略该部分,不进行替换。 - `CONCAT` 函数同样忽略 `NULL` 参数,但不会自动添加分隔符。 - `CONCAT_WS` 函数在使用时需要注意,如果所有参数均为 `NULL`,则返回空字符串。 通过这些方法,可以在 PostgreSQL 中高效地实现字符串拼接操作,满足多样化的数据处理需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值