比如现在有个表 记录着某个 sid 的开始 结束时间 大概有70w条数据
sid start_date end_date
1 2014/01/01 2014/07/24
3 2014/05/22 2014/06/05
8 2014/04/11 2014/04/16
我现在想生成一个将 start_date 和end_date展开的表 记录着每个周日,sid存在的记录:
生成后结果如下:
sid snp_date
1 2014/01/05
1 2014/01/12
1 2014/01/19
......
3 2014/05/25
......
WITH t AS ( SELECT 1 sid,DATE '2014-1-1' start_date,DATE '2014-7-24' end_date FROM DUAL UNION ALL SELECT 3,DATE '2013-1-1',DATE '2014-6-5' FROM DUAL UNION ALL SELECT 8,DATE '2014-4-11',DATE '2014-4-16' FROM DUAL UNION ALL SELECT 9,DATE '2014-10-18',DATE '2014-10-30' FROM DUAL UNION ALL SELECT 10,DATE '2014-10-18',DATE '2014-10-26' FROM DUAL UNION ALL SELECT 11,DATE '2014-10-19',DATE '2014-10-30' FROM DUAL UNION ALL SELECT 12,DATE '2014-10-19',DATE '2014-10-26' FROM DUAL UNION ALL SELECT 13,DATE '2014-10-19',DATE '2014-10-25' FROM DUAL ) SELECT sid,start_date+7-to_char(start_date,'DAY','NLS_DATE_LANGUAGE=''numeric date language''')+(LEVEL-1)*7 dt FROM t WHERE start_date+7-to_char(start_date,'DAY','NLS_DATE_LANGUAGE=''numeric date language''')+(LEVEL-1)*7 BETWEEN start_date AND end_date CONNECT BY sid=PRIOR sid AND LEVEL<=(end_date-start_date)/7+1 AND PRIOR SYS_GUID() IS NOT NULL;
相关推荐
在 Oracle 中,日期及时间格式可以通过使用 TO_CHAR 函数来实现,该函数可以将日期及时间转换为指定的格式。 Oracle 日期及时间格式的组成部分包括年、月、日、时、分、秒等,通过使用不同的格式符号,可以将日期及...
### Oracle抓取指定时间段AWR报告实例说明 #### 背景介绍 在日常的数据库运维工作中,我们经常需要对Oracle数据库的性能进行监控与优化。自动工作负载资料库(Automatic Workload Repository,简称AWR)是Oracle 10...
例如,如果要查询过去10天的数据,可以构建一个递归查询来生成过去10天的日期范围,然后将其与原始数据关联。 总之,Oracle数据库提供了丰富的工具来处理时间相关的数据分析,包括灵活的日期函数、分组函数以及递归...
本文将深入探讨如何从Oracle数据库中提取日期,并按照特定格式进行显示,这在数据分析、报表生成以及前端展示等场景下尤为关键。 ### Oracle数据库中的日期类型 Oracle数据库支持多种日期时间数据类型,其中最常用...
### Oracle自动导出脚本...通过以上详细说明,我们可以了解到如何在Windows环境下使用批处理脚本实现Oracle数据库的自动导出,并且生成的备份文件名包含了当前日期和时间信息,有助于后续的数据管理和恢复工作。
总结来说,生成指定范围内的时间主要依赖于SQL的日期时间函数和随机数生成函数。具体实现会根据你使用的数据库类型有所不同,但基本思路是相同的:先生成一个随机数,然后将这个随机数转化为对应时间范围内的偏移量...
`dbms_random`是Oracle提供的包,包含了一系列随机数生成函数,`value`函数可以生成指定范围内的随机数。通过`trunc`函数,我们可以将其转换为整数。 #### 4. **随机字符串生成** `dbms_random.string('x',20)`...
本文将深入解析Oracle日期时间操作的一些核心知识点,涵盖基本的日期时间函数使用、日期时间的格式化、以及一些高级的日期时间计算技巧。 ### 一、基础日期时间函数 #### 1. SYSDATE `SYSDATE`是Oracle系统中获取...
在Oracle数据库中,SQL语言是用于管理和操作数据的主要工具,特别是在处理日期和时间类型的数据时,Oracle提供了丰富的函数和操作符。这篇博文“Oracle的SQL实现日期的功能”将深入探讨如何利用Oracle SQL来处理日期...
`LAST_DAY()`用于获取指定日期所在月份的最后一天,而`NEXT_DAY()`用于获取指定日期之后的下一个工作日或特定星期几的日期。 - **`TO_CHAR()`函数的格式模型**:`TO_CHAR()`函数可以接受第二个参数指定日期或数字的...
- **开始时间和结束时间**:根据实际需求指定具体的开始和结束时间,以便于精确地获取所需时间段的性能数据。 ##### 2.4 导出ASH报告 ASH报告同样可以通过预定义的脚本生成,用于分析活跃会话的历史数据。 ``` ...
为了模拟真实场景中的日期时间数据,我们使用`SYSDATE`函数加上`ROWNUM`除以一天的秒数(24*3600)的方式,生成了一个随着时间递增的日期时间字段(`INC_DATETIME`)。这样可以确保每一条记录的时间都是递增的,并且...
除了以上介绍的功能外,Oracle还提供了许多其他的日期函数,比如用于计算两个日期之间间隔的 `MONTHS_BETWEEN` 函数,以及用于增加或减少指定日期单位的 `ADD_MONTHS` 和 `LAST_DAY` 等函数。这些函数在处理复杂的...
`NEXT_DAY`函数用于获取指定日期之后的下一个特定工作日。例如,获取下一个星期一: ```sql SELECT NEXT_DAY(SYSDATE, 'MONDAY') FROM DUAL; ``` 以上就是关于Oracle处理日期的相关知识点详解,希望能帮助读者更好...
此外,Oracle还提供了其他日期时间函数,如`ADD_MONTHS`用于添加月份,`EXTRACT`用于提取日期时间对象的特定部分(如年、月、日等),`TRUNC`用于截取日期到指定的精度(如年、月、日或小时)。`SYSDATE`函数返回...
Oracle数据库中的日期和时间处理是数据库管理中的重要一环,特别是在数据分析和报表生成时。Oracle提供了多种处理日期和时间的内置函数和数据类型,其中DATE类型是最基础的日期时间类型。 DATE类型的内部存储机制并...
在Oracle数据库中,时间函数允许我们进行各种操作,如获取当前日期和时间、计算日期之间的差异、调整日期以及按特定周期对数据进行分组和分析。以下是一些常用的时间函数的详细介绍: 1. **Sysdate**:这个函数返回...