首页 > 解决方案 > 日期地点条款

问题描述

我需要一些帮助来为日期字段编写 where 子句。

在我的数据集中,我有一个日期和日期列,它显示了日期和日期的缺席。

我需要一个 where 子句,如果我搜索特定月份,结果将显示缺席是否超出日期参数。

例如,从 2021 年 1 月 8 日到 2021 年 11 月 11 日缺席,我从 2021 年 1 月 10 日到 2021 年 10 月 31 日运行报告,结果应显示人员记录,因为他们在 10 月缺席

TIA

标签: sqloracledate

解决方案


假设范围是包容性的,并且您想将一整天都包含在范围内,那么您可以使用:

SELECT *
FROM   absences
WHERE  date_from <  DATE '2021-10-31' + INTERVAL '1' DAY
AND    date_to   >= DATE '2021-10-01'

注意:如果您只在午夜存储日期,那么您可以使用date_from <= DATE '2021-10-31',但如果您存储的日期包含非午夜时间组件并且想要包含最后一天的全部内容,那么您需要使用<并添加一天。

其中,对于样本数据:

CREATE TABLE absences (date_from, date_to) AS
SELECT DATE '2021-08-01', DATE '2021-11-11' FROM DUAL;

输出:

DATE_FROM DATE_TO
2021-08-01 00:00:00 2021-11-11 00:00:00

db<>在这里摆弄


推荐阅读