介绍 PostgreSql 两个有用的比较操作

本文介绍PostgreSql中两个非常方便、有用的比较操作,OVERLAPS 和 BETWEEN SYMMETRIC。

1. OVERLAPS(重叠)

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

SELECT (DATE '2016-01-10', DATE '2016-02-01') OVERLAPS (DATE '2016-01-20', DATE '2016-02-10');

结果返回true。

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

  • 日期(times or timestamps),与上面示例一样
  • date 和 interva,见下面示例。
SELECT (DATE '2016-01-10', INTERVAL '1 month') OVERLAPS (DATE '2016-01-20', INTERVAL '7 days');

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

2. BETWEEN SYMMETRIC

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

SELECT * FROM users WHERE id BETWEEN 2 AND 4

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

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

SELECT * FROM users WHERE id BETWEEN 4 AND 2

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

> select * from generate_series(1,10) as numbers(a)where numbers.a between 3 and 6;a
---3456

如果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
---3456

很好,参数顺序不重要了。

3. 总结

本文带你通过示例学习PostgreSql 两个有用的比较操作。非常简单易懂,持续学习会让你变得不简单。

介绍 PostgreSql 两个有用的比较操作相关推荐

  1. shell中join链接多个域_shell 如何实现两个表的join操作

    shell 如何实现两个表的join操作 今天研究的一个问题是:在Shell 脚本中如何实现两个表的 join 操作,这里说的两个表示的其实是 两个文件,但是文件是列表的形式,有固定的分割符号,即就相 ...

  2. 3Com Network Supervisor与IBM Tivoli NetView两款网管软件操作视频

    3Com Network Supervisor与IBM Tivoli NetView两款网管软件操作视频   网管软件必须能够实实在在的给我们带来好处,对于企业网络管理来说,其作用体现在以下几个方面: ...

  3. css 一些好玩的属性,css一些不常见但很有用的属性操作大全

    1.自定义文本选择 ::selection { background: red; color: black; } 2.去掉video的controls中的下载按钮 video::-internal-m ...

  4. 介绍PostgreSQL CTE(common table expressions)

    介绍PostgreSQL CTE(common table expressions) 本文我们学习如何使用PostgreSQL CTE(common table expressions)简化复杂查询. ...

  5. python ioc di_Spring介绍,IOC(控制反转),DI(依赖注入)介绍及两种注入方法

    Spring介绍,IOC(控制反转),DI(依赖注入)介绍及两种注入方法 第一中方法:在xml文件中注入: (1)开源的轻量级的应用开发框架 特点:a.简化开发:b.解耦:c.集成: 原理对象与对象之 ...

  6. 两个ListBox的相互操作

    两个ListBox的相互操作有四个按:全选,单选,反单选,反全选. 一.一种情况是这四个按钮用服务器控件:     /**//// <summary>     /// 选中全部     / ...

  7. 判断子序列不同的子序列两个字符串的删除操作编辑距离

    引言 下面的四种题相互间都有联系,都是类似编辑距离类的题目,这里从简单开始,逐渐深入: 判断子序列 给定字符串 s 和 t ,判断 s 是否为 t 的子序列. 字符串的一个子序列是原始字符串删除一些( ...

  8. Leetcode 583.两个字符串的删除操作

    两个字符串的删除操作 给定两个单词 word1 和 word2,找到使得 word1 和 word2 相同所需的最小步数,每步可以删除任意一个字符串中的一个字符. 示例 1: 输入: "se ...

  9. 583. 两个字符串的删除操作

    583. 两个字符串的删除操作 给定两个单词 word1 和 word2,找到使得 word1 和 word2 相同所需的最小步数,每步可以删除任意一个字符串中的一个字符. 示例: 输入: " ...

  10. 一些比较有用的SQL操作,2011最新整理

    一些比较有用的SQL操作,2011最新整理,SQL批量删除与批量插入,批量删除:wei yuan chuang DELETE FROM MyTable WHERE ID IN (1,2); 批量插入 ...

最新文章

  1. 【Kafka】Kafka为什么要加入分区的概念
  2. 吴恩达 coursera AI 第四课总结+作业答案
  3. DCMTK:OFerror_code的测试程序
  4. Linux服务器rsync自动备份
  5. IDEA显示完整目录,取消合并的文件,取消“ . “ 的这种目录
  6. 显示滚动条后,table 表头与内容不对齐,JS脚本控制
  7. 计算机防火墙服务不能启动不了,Windows防火墙不能启动 服务也不能启动,怎么回事?...
  8. 虚拟拨号服务器名称,怎么设置虚拟拨号服务器
  9. 树立品牌价值标杆,维谛技术(Vertiv)荣膺“中国电气工业100强”殊荣
  10. 某大神网站发现2048一枚
  11. 微信h5页面制作总结
  12. 手机网页应用的交互设计
  13. emq Node emq@ not responding to pings.
  14. popen和system函数的区别 以及 popen打开的FILE指针能否用close替代fclose关闭
  15. Python爬虫 BeautifulSoup(bs4)-- bs4介绍、安装bs4、bs4基础语法
  16. ts(typescript): 报错
  17. 5G LAN是什么?5G LAN商用实现工业物联网5G无线接入
  18. “以虫为名”?新华三这波发布有点儿别出心裁……
  19. bison使用error死循环的记录
  20. .dat数据文件怎么打开_SPSS统计分析,之一 SPSS数据文件读取

热门文章

  1. html中鼠标点击效果的制作,用CSS实现鼠标单击特效-网页设计,HTML/CSS
  2. Duality-Gated Mutual Condition Network for RGBT Tracking
  3. 一个关于IT界牛人的故事,估计是杜撰的。
  4. vm15安装mac10.14提取ipa包
  5. EXCEL VBA窗口快捷键冲突查找原因
  6. 苹果html 闪退,iPhone6 App闪退的解决办法 掌握这4点苹果App不再闪退
  7. JNI 手动释放内存(避免内存泄露)
  8. Python正则表达式及match函数的用法
  9. 【USACO】Team Tic Tac Toe(C题)
  10. APIO 2017 考拉的游戏 题解