oracle SQL问题请教

sui366 2011-01-23 12:56:05
在oracle中

从当前日期算起得到指定天数(不如5天或三天)前的日期。

这条语句该如何写?

请各位大侠多多指教...

...全文
97 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
xman_78tom 2011-01-23
  • 打赏
  • 举报
回复

declare
days number:='&days';
dates date:=sysdate;
inc number;
begin
loop
select count(1) into inc from dual
where to_char(dates+level,'D') in (1,7)
connect by level<=days;
exit when inc=0;
dates:=dates+days; days:=inc;
end loop;
dbms_output.put_line(days);
dbms_output.put_line(dates+days);
end;
/

xman_78tom 2011-01-23
  • 打赏
  • 举报
回复

-- 除去双休日后,第 days 天的日期
declare
days number:='&days';
dates date:=sysdate;
inc number;
begin
loop
select count(1) into inc from dual
where to_char(dates+level,'D') in (1,6)
connect by level<=days;
exit when inc=0;
dates:=dates+days; days:=inc;
end loop;
dbms_output.put_line(dates+days);
end;
/
xman_78tom 2011-01-23
  • 打赏
  • 举报
回复

-- 星期天作为一个星期的第一天
declare
days number:='&days';
inc number;
begin
select count(1) into inc
from dual
where to_char(sysdate+level,'D') in (1,6)
connect by level<=days;
dbms_output.put_line(sysdate+days+inc);
end;
/

sui366 2011-01-23
  • 打赏
  • 举报
回复
不好意思 问题补充下:指定的天数是工作日,需要过滤双休日(其他节假日不考虑)
  • 打赏
  • 举报
回复
select sysdate-5 from dual

3,491

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧