问题描述
我需要每月从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')
以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进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




