oracle的日期条件查询

现在有多个表(1 ~ n),每个表里面又有很多条记录(具体条数不知道)。现在需要的是,对这些表进行条件查询,把符合查询日期的记录取出来放到一个表中。比如说把各个表中 从 27-五月 -2004 07:00:00 AM 到 27-六月 -2004 07:00:00 AM 之间的记录拿出来,放到表名为pdbase的表中,请问怎么写程序,十分感谢 所以能进行条件查询,是因为这些表的第一列就是我所描述的日期的形式,所以想根据这个日期,从各个表中选出满足条件的记录。

--如果表个数是不确定的 写个存储过程吧 调用时输入表名作为参数即可自动
--将记录取出插入pdbase表中
create or replace procedure p_name
(M_tablename in varchar) --需要提取数据的表名
as
--定义过程中的变量,变量类型根据自己需要定义,varchar2类型的需带精度
L_column1 varchar2(20);
L_column2 varchar2(20);
L_column3 varchar2(20);
--定义一个游标
CURSOR C_CHARGES IS
select column1,column2,column3 --记录的列多的话,可以多定义几个
from M_tablename
where datetime >=
to_date('2004-05-27 07:00:00', 'yyyy-mm-dd hh24:mi:ss')
and
datetime <=
to_date('2004-06-27 07:00:00', 'yyyy-mm-dd hh24:mi:ss')

begin
OPEN C_CHARGES;
LOOP
FETCH C_CHARGES
INTO L_column1,L_column2,L_column3
EXIT WHEN C_CHARGES%NOTFOUND;
insert into pdbase
(column1,column2,column3)
values
(L_column1,L_column2,L_column3)
end loop;
CLOSE C_CHARGES;
end;

--如果表个数是确定的,且只要查询效果,可直接使用合并查询
select * from t_test_1
where dt>=to_date('2010-04-03 07:00:00', 'yyyy-mm-dd hh24:mi:ss') and
dt<=to_date('2010-04-10 07:00:00', 'yyyy-mm-dd hh24:mi:ss')
union
select * from t_test_2
where dt>=to_date('2010-04-03 07:00:00', 'yyyy-mm-dd hh24:mi:ss') and
dt<=to_date('2010-04-10 07:00:00', 'yyyy-mm-dd hh24:mi:ss')
union
select * from t_test_3
where dt>=to_date('2010-04-03 07:00:00', 'yyyy-mm-dd hh24:mi:ss') and
dt<=to_date('2010-04-10 07:00:00', 'yyyy-mm-dd hh24:mi:ss')

--有几个表,写几个union连接在后面即可 还有什么问题 可以联系我!
温馨提示:内容为网友见解,仅供参考
无其他回答

oracle查询日期
在Oracle查询中,若要提取日期中的日数,可以利用截取字符串的方法。具体步骤如下:首先,使用`substr`函数来截取字符串。在这里,`substr(birth,9,2)`表示从`birth`字段的第9位开始,截取2位长度的子字符串。然后,通过`count(*)`计算该子字符串在数据集中出现的次数。最后,利用`group by`将结果...

oracle的sql语句能以最大日期作为查询条件吗
需要将表中的时间转成字符类型再做查询。如emp表中数据如下:现在要查询hiredate中年份为1982年的信息,可用如下语句:select from emp where to_char (hiredate,'yyyy')=1982;查询结果:

oracle查询增加日期条件
现要查询hiredate日期为1981年5月1日之前的数据,可用如下语句:select * from emp where to_char(hiredate,'yyyy-mm-dd')<'1981-05-01';查询结果:

oracle 日期格式 查询 如有一个字段类型是date的 我要根据这个字段来查...
1、选中桌面常用的PLSQL Developer工具。2、打开后,输入登录信息,进行登录。3、工具中新建一个SQL窗口。4、SQL窗口打开后是这个样子。5、日期createdatetime,日期型字段类型如下。6、输入如下语句,从表table123进行查询。7、点击查询按钮,进行查询操作。8、查询结果如下,已查出2014年1月1日的查询记...

oracle的日期条件查询
--如果表个数是确定的,且只要查询效果,可直接使用合并查询 select * from t_test_1 where dt>=to_date('2010-04-03 07:00:00', 'yyyy-mm-dd hh24:mi:ss') and dt<=to_date('2010-04-10 07:00:00', 'yyyy-mm-dd hh24:mi:ss')union select * from t_test_2 where dt>=to...

oracle怎么查询时间?
;\\x0d\\x0a方法二:select * from dual where to_char(time,'yyyy-mm-dd')='2012-06-18';\\x0d\\x0a方法三:select * from dual where trunc(time)=to_date('2012-06-18','yyyy-mm-dd');\\x0d\\x0a当然楼主也可以按上面的先转换下日期的显示格式再查询撒,都可以的,呵呵!!!

oracle数据库时间日期的查询
select * from test where to_char(d, 'yyyymmdd') between (to_char(sysdate,'yyyymm') || '01') and (to_char(sysdate,'yyyymm') || '11');

Oracle中如何查询带日期的查询语句
简单号,ROACEL里查询日期带时间的是 to_date('20100201 00:00:00','YYYYMMDD hh24:mi:ss')这样的。你的语句可以改成 select MOBILE from local_member where ( (FIRSTLOGINTIME between to_date('20100201 00:00:00','yyyymmdd hh24:mi:ss') and to_date('20100228 23:59:59','...

oracle怎么查询时间?
59','yyyy-mm-dd hh24:mi:ss');方法二:select * from dual where to_char(time,'yyyy-mm-dd')='2012-06-18';方法三:select * from dual where trunc(time)=to_date('2012-06-18','yyyy-mm-dd');当然楼主也可以按上面的先转换下日期的显示格式再查询撒,都可以的,呵呵!!!

在oracle中怎么判断一个日期是否在一定时间范围内
用to_char函数即可。如emp表中数据如下:要查询hiredate的日期为1981年1月1日到1981年5月1日之间的数据,可用如下语句:select * from emp where to_char(hiredate,'yyyy-mm-dd') between '1981-01-01' and '1981-05-01';查询结果:

相似回答
大家正在搜