oracle中有一个字段rownum,长期以来只知道它是记录的行号,却没有想过用它做更有价值的事情。
有两个时间点,要求列出这两天之间的所有日期,如2010-04-01和2010-04-10,列出
2010-4-1
2010-4-2
2010-4-3
2010-4-4
2010-4-5
2010-4-6
2010-4-7
2010-4-8
2010-4-9

首先想到的是用环循,可是又不能用存储过程,在sql中怎么用循环?rownum帮了大忙了

       SELECT ROWNUM AS FOR_I        FROM ALL_OBJECTS      WHERE ROWNUM < 10;

结果如下:
FOR_I
1
2
3
4
5
6
7
8
9

正是利用rownum自增1的特性可以实现sql中的循环。
下面实现本文刚开始提的需求,列出两个日期间的所有日期:

       SELECT TRUNC(TO_DATE('2010-04-01', 'yyyy-mm-dd')) + ROWNUM - 1 AS DATES      FROM   ALL_OBJECTS        WHERE  TRUNC(TO_DATE('2010-04-01', 'yyyy-mm-dd')) + ROWNUM - 1 <             TRUNC(TO_DATE('2010-04-10', 'yyyy-mm-dd'));

结果如下:
DATES
2010-4-1
2010-4-2
2010-4-3
2010-4-4
2010-4-5
2010-4-6
2010-4-7
2010-4-8
2010-4-9

这里从all_objects中查rownum是因为all_objects有足够多的记录并且是系统表不常会被清空,当然数据过多会影响一定的查询速度,如果循环次数不是很多建议选择记录不是很多的表,有助于提高效率。
如果想改变步长rownum * 2即可。

[table]|[url="http://s.click.taobao.com/a/qXMXdhyM2l4=-14390488"][img]http://image.taobao.com/bao/uploaded/http://img08.taobaocdn.com/bao/uploaded/i8/T1EU4qXmhdXXcIVTHb_095348.jpg_sum.jpg[/img][/url][url="http://s.click.taobao.com/a/qXMXdhyM2l4=-14390488"]皇冠信誉◆清风通讯-[b][size=medium]黑莓体验中心-BLACKBERRY[/size][/b]全面支持货到付款[/url][url="http://s.click.taobao.com/a/qXMXdhyM2l4=-14390488"][img]http://img.alimama.cn/images/tbk/cps/fgetccode_btn.gif[/img][/url][/table]
[b][size=medium][i][align=left][color=red][img]http://img.tongji.linezing.com/729225/tongji.gif[/img]真诚希望朋友们能留下宝贵意见,不甚感激![/color][/align][/i][/size][/b]

列出两个日期间的所有日期(使用oracle的rownum实现在sql中使用循环)相关推荐

  1. Python:生成两个日期间的随机日期

    先提一下我的这篇文章:Python 超快生成大量随机数的方法 然后就是代码实现了: import random import datetimedef random_date(start=begin, ...

  2. python编程工时计算_Python编程题:两个日期间的天数统计(附代码)

    编程题一:计算两个日期之间的天数 题目如下: 题目一 解题思路: 将两个日期格式化成time模块中的标准时间结构struct_time,缺少值用0补齐利用time模块函数分别计算两个日期到时间戳(指格 ...

  3. SQL 如何得到两个日期间的工作日(附假期表)

    首先,我们有这样一张表 我们要知道两个日期间的工作日天数,相信大家有遇到过这个恶心人的需求,所谓工作日,不简简单单的就是除周六日以外的日子.要考虑到节假日,国庆啊,中秋啊,最让人头疼的是,你根本无法掌 ...

  4. MYSQL 如何得到两个日期间的工作日(不含周六日,节假日)

    写在前面  参考文章 SQL 如何得到两个日期间的工作日(附假期表)_Fuzz-CSDN博客_sql计算日期之间工作日函数 这篇文章使用的是SQL SEVER ,如何转化为 MYSQL 新手尝试两个小 ...

  5. 统计两个日期间工作日的天数

    统计两个日期间工作日天数 /*** 将LocalDate转成Date* @param localDate* @return*/public static Date LocalDateToDate(Lo ...

  6. oracle计算两个日期间的工作日(根据表配置)

    首先新增表用于配置非工作日,工作日,具体配置在程序中处理 DROP TABLE "T_WEEKDAY"; CREATE TABLE "T_WEEKDAY" (& ...

  7. LocalDate计算两个日期间距离

    1.LocalDate提供了until()方法,计算了两个日期之间的年.月和日的周期 例如: from {@code 2017-08-28} to {@code 2018-09-30} is &quo ...

  8. Python计算两个日期间的工作日(交易日),去除周末节假日

    首先区分一下这里的工作日和节假日是不同的. 工作日是指去掉节假日即周末,但是不去掉调休的日期. 交易日主要针对金融行业,是指去掉节假日和周末,因为周末金融市场也是停盘的,所以即使周末因为调休工作,也不 ...

  9. period_diff()函数不能用于计算两个日期间的天数

    period_diff()函数返回两个日期之间的月份数,不能用于计算两个日期间的天数,比如 SELECT PERIOD_DIFF(20200325,20200404) FROM DUAL; 结果是9, ...

最新文章

  1. java在线作业系统_在线作业系统论文
  2. 开发软件真是一件有意思的事情
  3. Go语言学习教程:xorm表基本操作及高级操作
  4. java图像处理之自动对比度
  5. 【Ids4实战】深究配置——用户信息操作篇
  6. android 网卡监听,Android实时监听网络的变化
  7. Python hash、xml、configparser、sheve、shutil模块讲解 以及 面向对象初识
  8. android实现qq修改密码底部弹出框_易查分强大的“可修改列”功能:轻松实现填表、留言和信息核对...
  9. PushMe(交互式)
  10. linux搭建oracle脚本,Linux脚本自动安装Oracle
  11. Postman转换为Jmeter
  12. Linux之cat命令
  13. Maple绘图小技巧1
  14. Python笔记001-类的特殊方法
  15. 安知我不知死之乐”的意境
  16. 无需工具qlv转mp4格式最新,下载好的qlv文件怎么转换成mp4?腾讯视频怎么下载mp4格式?怎么把腾讯视频转换成mp4格式?
  17. java主机哪儿好_java虚拟主机哪个好,香港java虚拟主机哪里有!
  18. python正则表达式是什么意思_理解python正则表达式
  19. 方格走法-牛客网(排列组合和动态规划)
  20. 树状数组原理及经典应用问题

热门文章

  1. cs231n学习笔记——图像分类
  2. 甲骨文和IBM的IaaS云战略:畅所欲言,少投资
  3. Discuz!目录结构
  4. 希尔排序(动图+详解)
  5. HEVC/H.265(1)——入门初步了解
  6. python获取当前线程数量_python 线程数
  7. IPv6的黑洞路由何去何从
  8. Oracle的ERP系统中报表不好用?
  9. Hadoop——开源分布式计算平台简介
  10. 继往开来,中国移动与日本软银引领TD-LTE产业进入5G时代