首页 > 数据库 >postgresql/lightdb OVERLAPS 和 BETWEEN SYMMETRIC函数介绍

postgresql/lightdb OVERLAPS 和 BETWEEN SYMMETRIC函数介绍

时间:2023-01-05 09:55:49浏览次数:40  
标签:OVERLAPS postgresql between SYMMETRIC numbers BETWEEN DATE

  PostgreSql/lightdb中有两个非常方便、有用的比较操作,OVERLAPS 和 BETWEEN SYMMETRIC。

1. OVERLAPS(重叠)

OVERLAPS操作,用于检测两个日期范围是否重叠。举例:

SELECT (DATE '2020-11-10', DATE '2020-12-01') OVERLAPS (DATE '2020-11-20', DATE '2020-12-11');

1

结果返回true。

时间范围边界有两种方式:

日期(times or timestamps),与上面示例一样

date 和 interval,见下面示例。

SELECT (DATE '2020-11-10', INTERVAL '1 month') OVERLAPS (DATE '2016-12-11', INTERVAL '7 days');

1

结果返回true。

注意:如果第一个时间范围的截至时间等于第二个时间范围的开始时间,结果返回false。

 

2. BETWEEN SYMMETRIC

我们都用过 value BETWEEN X AND Y,其实就是 value >= X AND value <= Y。举例:

SELECT * FROM users WHERE id BETWEEN 2 AND 4

1

则返回id为2,3,4的用户信息。

value BETWEEN X AND Y 是假设x 比 y 小,否则查询结果为空。举例:

SELECT * FROM users WHERE id BETWEEN 4 AND 2

1

实际应用中x , y可能是用户传入的参数,有可能没有按照约定传入,导致查询结果为空。BETWEEN SYMMETRIC 可以解决该问题。

下面通过示例说明:

> select * from generate_series(1,10) as numbers(a)

    where numbers.a between 3 and 6;

 a

---

 3

 4

 5

 6

 

如果between参数颠倒,返回结果为空:

> select * from generate_series(1,10) as numbers(a)

    where numbers.a between 6 and 3;

 a

 

请出between symmetric:

> select * from generate_series(1,10) as numbers(a)

    where numbers.a between symmetric 6 and 3;

 a

---

 3

 4

 5

 6

参数顺序不重要了。

标签:OVERLAPS,postgresql,between,SYMMETRIC,numbers,BETWEEN,DATE
From: https://www.cnblogs.com/lightdb/p/17026691.html

相关文章

  • postgresql/lightdb中覆盖自增列值
    PostgreSQL里的自动生成标识列identitycolumn和自动生成存储列generatedcolumn是非常不错的功能,不过他们的实现语法比较近似,容易弄混,本文将进行示例介绍。PGv10:......
  • PostgreSQL远端访问
    PostgreSQL默认的理念是运行在本地地址且不允许外部访问的。如果想通过NavicatforpostgreSql这种优秀的第三方软件访问需要做出如下修改:一、启动在外部可访问的地址上......
  • postgresql_anonymizer使用
     瀚高数据库目录环境文档用途详细信息  环境系统平台:Linuxx86-64RedHatEnterpriseLinux7版本:12 文档用途postgresql_anonymizer是对数据库中的个人识别信息或商业......
  • Postgresql分析慢sql
    Postgresql分析慢sqli查拉图斯特拉如是说2022年12月20日21:06 ·  阅读446开启掘金成长之旅!这是我参与「掘金日新计划·12月更文挑战」的第1天,点击查看......
  • PostgreSQL源码结构
    PostgreSQL源码结构  5440 次浏览      6 2019-9-6 编辑推荐:本文来自于csdn,本文主要介绍了PostgreSQL......
  • PostgreSQL死锁了怎么办?
    PostgreSQL死锁了怎么办?慕枫技术笔记2022年05月27日00:17 ·  阅读638持续创作,加速成长!这是我参与「掘金日新计划·6月更文挑战」的第1天,点击查看活动详......
  • Oracle转PostgreSQL
    Oracle转PostgreSQLOracle postgresql oracle sql 数据库 最近在做一些OracleSQL转PostgreSQL的工作,顺便记录这些改变,以便以后再转换有个参考。描述OracleP......
  • PostgreSQL动态SQL(兼容oracle DBMS_SQL)
    PostgreSQL动态SQL(兼容oracleDBMS_SQL)PostgreSQL sql 数据库 postgresql oracle中的dbms_sql包可以用来执行动态SQL,让我们在存储过程的动态SQL中使用prepared......
  • postgresql windows 开发环境搭建
    postgresqlwindows开发环境搭建发布时间:2020-06-2912:45:05 来源:网络 阅读:2883 作者:pgmia 栏目:数据库一、软件需求Windows7旗舰版sp1X64ActivePerl-5.......
  • PostgreSQL兼容oracle rman备份——pg_rman
    PostgreSQL兼容oraclerman备份——pg_rmanPostgreSQL sql 数据库 postgresql 0、说明PostgreSQL支持多种备份数据的方式,如:SQL转储、文件系统级备份、连续归档。......