Oracle日期查詢當天,乙個星期,乙個月的資料

2021-09-01 13:04:47 字數 3867 閱讀 5460

create table a(

aid int primary key,

aname varchar2(20),

adate date,

atext varchar2(50)

);create sequence a1

start with 1

increment by 1;

create table b(

bid int primary key,

bname varchar2(20),

btype varchar2(10),

bdate date,

b_count int,

aid int references a(aid)

);create sequence b1

start with 1

increment by 1;

insert into a values(a1.nextval,'ly0',(to_date('2012-10-26','yyyy-mm-dd')),'aaa0');

insert into a values(a1.nextval,'ly1',(to_date('2012-10-25','yyyy-mm-dd')),'aaa1');

insert into a values(a1.nextval,'ly2',(to_date('2012-10-24','yyyy-mm-dd')),'aaa2');

insert into a values(a1.nextval,'ly3',(to_date('2012-10-23','yyyy-mm-dd')),'aaa3');

insert into a values(a1.nextval,'ly4',(to_date('2012-10-22','yyyy-mm-dd')),'aaa4');

insert into a values(a1.nextval,'ly5',(to_date('2012-10-21','yyyy-mm-dd')),'aaa5');

insert into a values(a1.nextval,'ly6',(to_date('2012-10-20','yyyy-mm-dd')),'aaa6');

insert into a values(a1.nextval,'ly7',(to_date('2012-10-19','yyyy-mm-dd')),'aaa7');

insert into a values(a1.nextval,'ly8',(to_date('2012-10-18','yyyy-mm-dd')),'aaa8');

insert into a values(a1.nextval,'ly9',(to_date('2012-10-17','yyyy-mm-dd')),'aaa9');

insert into a values(a1.nextval,'ly10',(to_date('2012-10-16','yyyy-mm-dd')),'aaa10');

insert into b values(b1.nextval,'lyb0','a',(to_date('2012-10-26','yyyy-mm-dd')),8,1);

insert into b values(b1.nextval,'lyb1','c',(to_date('2012-10-25','yyyy-mm-dd')),8,1);

insert into b values(b1.nextval,'lyb2','b',(to_date('2012-10-24','yyyy-mm-dd')),8,2);

insert into b values(b1.nextval,'lyb3','a',(to_date('2012-10-23','yyyy-mm-dd')),8,1);

insert into b values(b1.nextval,'lyb4','b',(to_date('2012-10-22','yyyy-mm-dd')),8,3);

insert into b values(b1.nextval,'lyb5','b',(to_date('2012-10-21','yyyy-mm-dd')),8,5);

insert into b values(b1.nextval,'lyb6','a',(to_date('2012-10-20','yyyy-mm-dd')),8,1);

insert into b values(b1.nextval,'lyb7','d',(to_date('2012-10-19','yyyy-mm-dd')),8,2);

insert into b values(b1.nextval,'lyb8','e',(to_date('2012-10-18','yyyy-mm-dd')),8,4);

insert into b values(b1.nextval,'lyb9','c',(to_date('2012-10-17','yyyy-mm-dd')),8,4);

insert into b values(b1.nextval,'lyb10','a',(to_date('2012-10-16','yyyy-mm-dd')),8,2);

insert into b values(b1.nextval,'lyb11','c',(to_date('2012-9-16','yyyy-mm-dd')),8,1);

insert into b values(b1.nextval,'lyb12','a',(to_date('2012-9-12','yyyy-mm-dd')),8,2);

insert into b values(b1.nextval,'lyb13','d',(to_date('2012-9-13','yyyy-mm-dd')),8,4);

insert into b values(b1.nextval,'lyb14','a',(to_date('2012-9-11','yyyy-mm-dd')),8,3);

commit;

--查詢當天的資料

select * from a where trunc(adate) = trunc(sysdate);

--查詢乙個星期的資料

--乙個星期的第一天

select trunc(sysdate,'d') from dual;

--乙個星期的最後一天

select next_day(trunc(sysdate,'d'),7) from dual;

--乙個星期之內的

select * from a where trunc(adate) >= trunc((select max(adate) from a),'d')

and trunc(adate ) <= next_day(trunc((select max(adate) from a),'d'),7)

--查詢乙個月的資料

select * from a where to_char(trunc(adate),'yyyymm') = to_char(trunc(sysdate),'yyyymm');

--b表中時間為2012-9的所有資料

select * from a where to_char(trunc(adate),'yyyymm') = to_char(trunc((select max(adate) from a)),'yyyymm');

--查詢出b表中type為a,b,c的所有和,和他們所佔的比例

select sum(b_count) from b where btype in('a','b','c');

select round((select sum(b_count) from b where btype in('a','b','c'))/(select sum(b_count) from b),4)*100||'%' from b;

--查詢每一行佔總的比例

select bid,bname,btype,bdate,b_count,aid,ratio_to_report(b_count) over() as scale from b;

oracle 查詢當天月份所有日期

一 最近遇到需求需要查詢一段時間的所有日期,作為基礎表外聯業務表來展現記錄,記錄每天的資料情況,研究之後做下記錄 1 查詢當前月份所有日期 2 查詢近1個月所有日期 select trunc add months sysdate,1 rownum 1 as daylist from dual con...

oracle查詢當天,一星期,當月的資料

hk學習筆記 有一天公司來了查乙個星期資料的需求 我花了乙個小時多才弄出來,所以記下來,下次遇到了,也記得.當天select from my table a where trunc create date trunc sysdate 當月的 select from my table a where ...

SQL 查詢當天,昨天,一周以內的資料

今天的所有資料 select from 表名 where datediff dd,datetime型別字段,getdate 0 昨天的所有資料 select from 表名 where datediff dd,datetime型別字段,getdate 1 7天內的所有資料 select from 表...