一年有365天 每天都有数据 我只想显示 每隔十天的数据
这个oracle 语句咋写?请各位大侠指教指教。
这个oracle 语句咋写?请各位大侠指教指教。
解决方案 »
- 我现在有一个Orcal 10g 有一个 *.dmp 请问如何把*.dmp 弄到Orcal 10g里
- 限制用户用delphi连接oracle
- 循环插入数据
- oracle存储过程/函数问题
- 把用多个表查询出来的一列赋值给另一列(整列对应赋值)
- group by语句中的子查询
- Tomcat访问Linux下的Oracle。插入blob数据出错。
- 问一个分析函数的问题,如果在分析函数中加入条件?
- 为什么我在SQL plus下运行select count(*) from v$process;是不是那里配置的问题??
- oracle基础知识分享
- 如何查看ORACLE 数据库的操作日志
- plsql的代码运行问题
with t as
(
select trunc(sysdate,'yyyy') + rownum - 1 as sdate from dual
connect by rownum <= trunc(sysdate,'yyyy') + interval'1'year - trunc(sysdate,'yyyy')
)
select sdate
from (select sdate, rownum as rn from t
where sdate >= trunc(sysdate))
where mod(rn, 10) = 1;
(
select trunc(sysdate,'yyyy') + rownum - 1 as sdate from dual
connect by rownum <= trunc(sysdate,'yyyy') + interval'1'year - trunc(sysdate,'yyyy')
)
select sdate
FROM t
wHERE mod(trunc((SYSDATE - sdate)/10),2)=0
;
(
select trunc(sysdate,'yyyy') + rownum - 1 as ddate from dual
connect by rownum <= trunc(sysdate,'yyyy') + interval'1'year - trunc(sysdate,'yyyy')
)
select ddate from t
where mod(to_number(to_char(ddate,'ddd')), 20) <= 10;
DDATE
-----------
2011-1-1
2011-1-2
2011-1-3
2011-1-4
2011-1-5
2011-1-6
2011-1-7
2011-1-8
2011-1-9
2011-1-10
2011-1-20
2011-1-21
2011-1-22
2011-1-23
2011-1-24
2011-1-25
2011-1-26
2011-1-27
2011-1-28
2011-1-29
2011-1-30
2011-2-9
2011-2-10
2011-2-11
2011-2-12
......
v_accdate date;
v_day char(2);
begin
v_accdate:=sysdate;--使用系统时间
v_day:=subStr(to_char(v_accdate,'yyyymmdd'),7,2);
if v_day in ('01','11','21')
then EXECUTE IMMEDIATE 'SELECT * FROM TAB';
END IF;
END;
/
scott@TBWORA> select trunc(sysdate,'yyyy')+level*10-1
2 from dual
3 connect by level<=36;TRUNC(SYSDATE,'YYYY
-------------------
2011-01-10 00:00:00
2011-01-20 00:00:00
2011-01-30 00:00:00
2011-02-09 00:00:00
2011-02-19 00:00:00
2011-03-01 00:00:00
2011-03-11 00:00:00
2011-03-21 00:00:00
2011-03-31 00:00:00
2011-04-10 00:00:00
2011-04-20 00:00:00
2011-04-30 00:00:00
2011-05-10 00:00:00
2011-05-20 00:00:00
2011-05-30 00:00:00
2011-06-09 00:00:00
2011-06-19 00:00:00
2011-06-29 00:00:00
2011-07-09 00:00:00
2011-07-19 00:00:00
2011-07-29 00:00:00
2011-08-08 00:00:00
2011-08-18 00:00:00
2011-08-28 00:00:00
2011-09-07 00:00:00
2011-09-17 00:00:00
2011-09-27 00:00:00
2011-10-07 00:00:00
2011-10-17 00:00:00
2011-10-27 00:00:00
2011-11-06 00:00:00
2011-11-16 00:00:00
2011-11-26 00:00:00
2011-12-06 00:00:00
2011-12-16 00:00:00
2011-12-26 00:00:00已选择36行。
2 from dual
3 connect by level<=37;TRUNC(SYSDATE,'YYYY
-------------------
2011-01-01 00:00:00
2011-01-11 00:00:00
2011-01-21 00:00:00
2011-01-31 00:00:00
2011-02-10 00:00:00
2011-02-20 00:00:00
2011-03-02 00:00:00
2011-03-12 00:00:00
2011-03-22 00:00:00
2011-04-01 00:00:00
2011-04-11 00:00:00
2011-04-21 00:00:00
2011-05-01 00:00:00
2011-05-11 00:00:00
2011-05-21 00:00:00
2011-05-31 00:00:00
2011-06-10 00:00:00
2011-06-20 00:00:00
2011-06-30 00:00:00
2011-07-10 00:00:00
2011-07-20 00:00:00
2011-07-30 00:00:00
2011-08-09 00:00:00
2011-08-19 00:00:00
2011-08-29 00:00:00
2011-09-08 00:00:00
2011-09-18 00:00:00
2011-09-28 00:00:00
2011-10-08 00:00:00
2011-10-18 00:00:00
2011-10-28 00:00:00
2011-11-07 00:00:00
2011-11-17 00:00:00
2011-11-27 00:00:00
2011-12-07 00:00:00
2011-12-17 00:00:00
2011-12-27 00:00:00已选择37行。
一个月按30天来算直接用日期来进行,1-10号,11-20号,21-月底--则直接对号数EXTRACT(DAY FROM SYSDATE) 进行分组即可select *
from tb
where round(EXTRACT(DAY FROM 日期)/10) = round(EXTRACT(DAY FROM SYSDATE)/10 )--取出当前日期,如果为31号 则转换到21-30号区间里,类似如下
select *
from tb
where decode(round(EXTRACT(DAY FROM 日期)/10,4,3) = round(EXTRACT(DAY FROM SYSDATE)/10 )