请问oracle中 如何实现查询一年中所有星期六的数据

[复制链接]
查看11 | 回复9 | 2006-8-12 12:42:51 | 显示全部楼层 |阅读模式
oracle中 如何查询一年中所有星期六的数据
回复

使用道具 举报

千问 | 2006-8-12 12:42:51 | 显示全部楼层
where to_char(date_col, 'd')= 7
回复

使用道具 举报

千问 | 2006-8-12 12:42:51 | 显示全部楼层
学习了
回复

使用道具 举报

千问 | 2006-8-12 12:42:51 | 显示全部楼层
select work_day
from WORK_CALENDAR
where to_char(work_day, 'd')= 7
and calendar_id='ABC'
回复

使用道具 举报

千问 | 2006-8-12 12:42:51 | 显示全部楼层
原帖由 zhangweicai74 于 2008-4-10 10:36 发表
select work_day
from WORK_CALENDAR
where to_char(work_day, 'd')= 7
and calendar_id='ABC'

回复

使用道具 举报

千问 | 2006-8-12 12:42:51 | 显示全部楼层
学习了
回复

使用道具 举报

千问 | 2006-8-12 12:42:51 | 显示全部楼层
可是为什么要加calendar_id='ABC' 这个呢
回复

使用道具 举报

千问 | 2006-8-12 12:42:51 | 显示全部楼层
原帖由 zhitler 于 2008-4-10 13:41 发表
可是为什么要加calendar_id='ABC' 这个呢

it's one of my calendars in my system


回复

使用道具 举报

千问 | 2006-8-12 12:42:51 | 显示全部楼层
select case when to_char(trunc(sysdate,'year')+rownum,'d')='7' then trunc(sysdate,'year')+rownum end from dba_objects where rownum<=366;
列出任意1年中或N年中星期六的日期方法依次类推
回复

使用道具 举报

千问 | 2006-8-12 12:42:51 | 显示全部楼层
再来看pl/sql的方法
SET SERVEROUTPUT ON
DECLARE
v_max NUMBER DEFAULT 365;
BEGIN
IF MOD(EXTRACT(YEAR FROM SYSDATE)/400)=0 THEN
v_max :=366;
END IF;
FOR i IN 1..v_max LOOP
IF to_char(trunc(sysdate,'year')+i,'d')='7'THEN

DBMS_OUTPUT.PUT_LINE(trunc(sysdate,'year')+i,'d')||' is satuday');
ENF IF;
END LOOP;
END;
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行