前一天的日期不包括周末

时间:2017-01-25 16:07:56

标签: sql oracle

我正在尝试在TOAD中创建一个从Oracle DB中检索数据的SQL查询。 它应该做的是将之前工作日的所有数据检索回一周,但它应该排除星期六和星期日。 到目前为止,我创建了下面的查询。在这种格式中,它会返回一个" Missing关键字"错误信息。 TOAD突出了我的第一个"之间"运营商。 我知道我几乎就在那里。谁能给我最终的推动方向。

感谢。

Select orderkey, actualshipdate
from orders
Case to_char(sysdate, 'DAY')
When 'MONDAY'
then to_char(actualshipdate,'YYYYMMDD') between to_char(sysdate, 'YYYYMMDD') -11 and  to_char(sysdate, 'YYYYMMDD')-3
else to_char(actualshipdate,'YYYYMMDD') between to_char(sysdate, 'YYYYMMDD') -8 and  to_char(sysdate, 'YYYYMMDD')-1
end
order by actualshipdate asc

1 个答案:

答案 0 :(得分:0)

根据您的描述(并替换日期的糟糕的to_char):

select orderkey, actualshipdate
from orders
where 1=1
and actualshipdate between trunc(sysdate) - 8 
                     and trunc(sysdate)-(1/86400) -- midnight last night minus 1 second
and to_char(actualshipdate, 'D') not in (6,7) -- 6: Sat, 7: Sun