select 使用日期进行查询
select query manipulating with dates
我有一个包含 2 个日期列的 table。 start_date 和 end_date。我正在尝试从 start_date 和 end_Date 中获取包含日期或内部日期的数据。我还不知道如何创建查询。
我需要联系 emp_id,他在 4 月 9 日和 10 日请假。请有人帮忙!
谢谢!
如果您正在寻找单休,那么:
select l.*
from leaves l
where l.leave_start_date <= date '2020-04-10' and
l.leave_end_date >= date '2020-04-09';
这适用于一系列日期,假设一个假期涵盖这些日期。
如果您有不同的日期,请使用聚合:
select l.emp_id
from leaves l
group by l.emp_id
having sum(case when date '2020-04-09' between l.leave_start_date and l.leave_end_date then 1 else 0 end) > 0 and
sum(case when date '2020-04-10' between l.leave_start_date and l.leave_end_date then 1 else 0 end) > 0 ;
我有一个包含 2 个日期列的 table。 start_date 和 end_date。我正在尝试从 start_date 和 end_Date 中获取包含日期或内部日期的数据。我还不知道如何创建查询。
我需要联系 emp_id,他在 4 月 9 日和 10 日请假。请有人帮忙! 谢谢!
如果您正在寻找单休,那么:
select l.*
from leaves l
where l.leave_start_date <= date '2020-04-10' and
l.leave_end_date >= date '2020-04-09';
这适用于一系列日期,假设一个假期涵盖这些日期。
如果您有不同的日期,请使用聚合:
select l.emp_id
from leaves l
group by l.emp_id
having sum(case when date '2020-04-09' between l.leave_start_date and l.leave_end_date then 1 else 0 end) > 0 and
sum(case when date '2020-04-10' between l.leave_start_date and l.leave_end_date then 1 else 0 end) > 0 ;