`
lxcaoxin
  • 浏览: 127351 次
  • 性别: Icon_minigender_1
  • 来自: 南宁
社区版块
存档分类
最新评论

oracle 查询一条记录中两个时间的所有日期

 
阅读更多
test表结构和数据如下:
id     rate    start_date     end_date
1       0.8    2013-02-01     2013-02-15
2       0.6    2013-02-16     2013-02-28
3       0.4    2013-03-01     2013-03-10

查出每条记录的start_date 和end_date之间的所有日期和对应的rate  结果:
id      rate      date
1       0.8     2013-02-01
1       0.8     2013-02-02
1       0.8     2013-02-03
......
3      0.4     2013-03-10


SQL:
select a.id,rate, a.start_date, a.end_date, a.start_date+b.dis-1 h from
test a,
(select rownum dis from 
    (select max(end_date-start_date)+1 gap from test)
connect by rownum<=gap) b
where a.end_date>=a.start_date+b.dis-1
order h

分享到:
评论

相关推荐

    oracle日期查询相关

    在Oracle数据库中,可以通过`SYSDATE`函数来获取系统的当前日期和时间。这是一个非常实用的功能,尤其是在需要记录数据的操作时间点时。 **示例:** ```sql SELECT SYSDATE FROM DUAL; ``` 这条SQL语句将返回当前的...

    oracle处理日期大全

    计算两个日期之间的天数差是一种常见的需求。可以通过以下方法实现: ```sql SELECT FLOOR(SYSDATE - TO_DATE('20020405', 'YYYYMMDD')) FROM DUAL; ``` 此查询返回当前日期与2002年4月5日之间的天数差。 ### 4. ...

    ORACLE查询表最近更改数据的方法

    结合这两个查询,可以构建一个综合查询来获取表的名称及其最后修改日期: ```sql SELECT uat.table_name AS 表名, (SELECT last_ddl_time FROM user_objects WHERE object_name = uat.table_name) AS 最后修改...

    oracle关于日期时间

    根据提供的文件内容,本文将详细解析Oracle数据库中与日期时间处理相关的知识点,包括日期格式转换、日期计算以及一些实用的日期函数用法等。 ### Oracle日期时间处理概述 Oracle数据库提供了丰富的日期时间处理...

    oracle日期类型的处理

    此查询返回2023年1月份的每一天的行号计数,这里使用了 `ROWNUM` 和 `CONNECT BY` 来模拟多条记录,并利用 `BETWEEN` 进行日期范围的筛选。 通过上述示例,我们可以看到 `to_date()` 和 `to_char()` 函数在Oracle...

    oracle的一个简单存储过程实例

    在这个例子中,`add_student`过程接受两个参数,`p_name`和`p_age`,并插入一条新的学生记录。 `说明.txt`文件提供了对这些存储过程的使用指南,可能包括如何通过SQL*Plus或应用程序接口(如Java的JDBC)调用它们,...

    oracle复杂查询练习题

    在图书馆管理系统中,可能存在两个表:`book`用于存储图书信息,`bookEnrol`用于记录图书的借阅状态。为了获取所有当前状态为已借出的图书及其借出日期,可以采用以下SQL查询: #### 方案一:使用子查询和分组函数 ...

    oracle4的表查询和基本函数.docx

    例如,获取第7到第16条记录的查询可以这样写: ```sql SELECT * FROM ( SELECT a1.*, ROWNUM rn FROM ( SELECT * FROM EMP ) a1 WHERE ROWNUM ) a2 WHERE rn &gt; 6; ``` 接下来,我们讨论集合函数。UNION用于...

    ORACLE去除重复数据方法

    - `SELECT * FROM cte WHERE rn = 1`:这一行代码用于选择每个分组中的第一条记录,即行号为1的记录。 #### 总结 本文介绍了两种在Oracle数据库中去除重复数据的方法:一是通过子查询实现,二是利用窗口函数`ROW_...

    SQL与ORACLE建立链接并进行查询及插入操作

    3. 分页查询:Oracle提供ROWNUM伪列,可以配合WHERE子句实现分页查询,例如 `SELECT * FROM (SELECT * FROM table_name WHERE ROWNUM ) WHERE ROWNUM &gt; 5` 获取表的第6到第10条记录。 三、在SQL中向Oracle插入数据 ...

    oracle获取上一旬的开始时间和结束时间的实现函数

    在Oracle数据库中,有时我们需要获取特定日期对应的上一旬的开始和结束时间。本文将详细介绍如何使用Oracle SQL函数来实现这一需求。 首先,旬是指一个月中的三个时间段:上旬(1-10日)、中旬(11-20日)和下旬...

    oracle四大宝典之1:Oracle Sql基础

    `将一条记录插入到Employees表中。 5. **查询数据**: `SELECT`语句是SQL中最常用的命令,用于从数据库中检索信息。基础用法如`SELECT * FROM Employees;`会返回Employees表中的所有记录。通过`WHERE`子句可以添加...

    oracle_sql笔记

    UNION合并结果,INTERSECT返回两个查询的交集,EXCEPT返回第一个查询但不在第二个查询中的结果。 七、游标 游标是处理单条查询结果的机制,尤其在循环处理结果集时非常有用。Oracle提供了隐式游标和显式游标两种...

    Oracle日期类型处理

    - `MONTHS_BETWEEN`函数用于计算两个日期之间的月份数。 - `SELECT MONTHS_BETWEEN(SYSDATE, TO_DATE('2019-04-19')) FROM DUAL;` 计算当前日期与'2019-04-19'之间的月份数。 通过上述知识点的学习,可以了解到...

    oracle从人门到精通

    在Oracle中,数据库实例(Instance)和数据库文件(Database)是两个关键概念,实例是内存结构,用于管理数据库文件,而数据库文件则实际存储数据。 接下来,我们深入学习Oracle的数据类型。Oracle支持多种数据类型...

    Oracle日期处理

    这条SQL语句找出表 `TABLE1` 中所有 `A_DATE` 在 `'20011201'` 和 `'20011231'` 之间的记录。 ### 6. 设置日期格式 Oracle中的日期格式可以通过会话参数来设置,比如 `NLS_DATE_FORMAT` 或者 `NLS_DATE_LANGUAGE`...

    oracle数据库常用的99条查询语句

    Oracle数据库是世界上最流行的数据库管理系统之一,它提供了丰富的SQL语法用于数据查询、操作和管理。以下是一些基于Oracle数据库的常用查询语句及其解释: 1. `SELECT * FROM emp;` - 这是最基础的查询语句,用于...

    Oracle操作语句大全

    - **DUAL 是系统中的一张空表**:`DUAL`表通常用于测试查询语句或获取某些系统信息,因为该表仅包含一条记录。 - **SELECT * FROM DUAL**:查询`DUAL`表的所有列,由于`DUAL`表只有一个记录,因此该查询结果也只有一...

    oracle查询命令总结

    `MONTHS_BETWEEN`函数计算两个日期之间的月份数,这个查询找到入职超过25年的员工。 11. **显示首字母大写的雇员姓名**: ```sql select ename from emp where ename=initcap(ename); ``` `INITCAP`函数将字符...

Global site tag (gtag.js) - Google Analytics