sql - 在 PostgreSQL 中获取两个日期之间的结果

标签 sql postgresql date overlap

我有下表:

+-----------+-----------+------------+----------+
| id        | user_id   | start_date | end_date |
| (integer) | (integer) | (date)     | (date)   |
+-----------+-----------+------------+----------+

字段 start_dateend_date 包含日期值,例如 YYYY-MM-DD

此表中的条目可能如下所示:(1, 120, 2012-04-09, 2012-04-13)

我必须编写一个查询来获取与特定时间段匹配的所有结果。

问题是,如果我想从 2012-01-012012-04-12 获取结果,即使有条目,我也会得到 0 个结果start_date = "2012-04-09"end_date = "2012-04-13"

最佳答案

 SELECT *
   FROM mytable
  WHERE (start_date, end_date) OVERLAPS ('2012-01-01'::DATE, '2012-04-12'::DATE);

Datetime functions是文档中的相关部分。

关于sql - 在 PostgreSQL 中获取两个日期之间的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10170544/

相关文章:

sql - postgresql 中的内容是否为小写

php - html 表单中 Mysql 数据库中记录的日期值为 0000-00-00

delphi - UTC 格式的 DateTimeToUnix?

java - 将日期转换为简单的 DD-MM-YYYY HH24 :MI:SS format in SQL

c# - 检查数据表是否为空

mysql - 将逗号分隔的重复值分组

sql - LIMIT 基于 COUNT of DISTINCT `foreign_key` 到目前为止

postgresql - PostgreSQL 插入后输出的结果到底是什么意思?

sql - CLR 过程未在 SQL Server 进程中列出

sql - 检查更新语句中的唯一性