gpt4 book ai didi

oracle - 只查找两个日期之间的特定日期

转载 作者:行者123 更新时间:2023-12-02 06:51:00 24 4
gpt4 key购买 nike

我有一个 Oracle 表,其中包含如下数据:

 1. ID           DATE 
2. 12 02/11/2013
3. 12 02/12/2013
4. 13 02/11/2013
5. 13 02/12/2013
6. 13 02/13/2013
7. 13 02/14/2013
8. 14 02/11/2013
9. 14 02/12/2013
10. 14 02/13/2013

我只需要查找那些只有星期一、星期二和星期三日期的 ID,因此这里只应返回 ID = 14。我使用的是 Oracle,日期格式为 MM/DD/YYYY。请指教。

问候,镍丁

最佳答案

如果日期列是 DATE 数据类型,那么您可以

select id
from your_table
group by id
having sum(case
when to_char(date_col,'fmday')
in ('monday','tuesday','wednesday') then 1
else 99
end) = 3;

编辑:根据 igr 的观察更正了上述代码

但只有当您没有同一 ID 的一天两次时才可以。

如果列是 varchar2,则条件变为 to_char(to_date(your_col,'mm/dd/yyyy'),'fmday') in ...

更健壮的代码是:

select id 
from(
select id, date_col
from your_table
group by id, date_col
)
group by id
having sum(case
when to_char(date_col,'fmday', 'NLS_DATE_LANGUAGE=ENGLISH')
in ('monday','tuesday','wednesday') then 1
else 99
end) = 3;

关于oracle - 只查找两个日期之间的特定日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14973559/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com