暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle 两个日期范围之间的随机日期

askTom 2018-07-21
293

问题描述

我需要每月从2017年7月到2018年6月随机选择一个日期。我有下面提到的代码,该代码仅在整个2017日历年中选择它们,而从2017年7月到2018年6月都需要它。有什么建议吗?

以tst为 (
从按级别 <= 12的双连接中选择级别为mnth
)
选择to_date (楼层 (DBMS_Random.Value(1,to_char (最后日期 (mnth | | '-' | | 2017,'mm-yyy'),'dd') | | '-' | | mnth | | '-' | | 2017,'dd-mm-yyy')

专家解答

只需使用两个日期之间的天数作为您的随机数范围的大小。

SQL> with t as
  2   ( select date '2017-06-01' start_date,
  3            date '2018-04-01' end_date
  4     from dual )
  5  select start_date +
  6           trunc(dbms_random.value(0,(end_date-start_date+1)))
  7  from t;

START_DAT
---------
23-JUL-17

SQL>
SQL> /

START_DAT
---------
18-DEC-17

SQL> /

START_DAT
---------
13-MAR-18

SQL> /

START_DAT
---------
24-OCT-17



「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论