Oracle生成一个指定范围内的随机日期

/*

年1月1日)的整数偏移量来保存(即把日期保存为一个数字);

* 因此可通过寻找‘指定日期’与‘关键日期’相对应的整数偏移量,再加一个指定范围内的随机整数来生成一个指定范围内的随机日期。

*/

步骤:

1. 先找到‘指定日期’与‘关键日期’相对应的整数偏移量,格式为'J':

SQL>select to_char(sysdate,'J') from dual; --系统给的结果是: 2456191

2. 生成指定范围[min_value, max_value]内的随机日期:

SQL>select to_date(2456191 + trunc(DBMS_RANDOM.VALUE(min_value, max_value)),'J') from dual;

例如,要生成一个2003年内的任意日期:

/*

年内的任意日期,即日期范围是(2003-01-01, 2003-12-31)

* 可以转化为 2003-01-01 + (0, 365),

* 其中,2003-01-01 就是‘指定日期’; (0, 365) 就是‘指定范围’

*/

1. 首先确定2003年1月1日的日期整数:

SQL>select to_char(to_date('2003-01-01', 'yyyy-MM-dd'), 'J') from dual; --系统给的结果是: 2452641

2. 生成指定范围[min_value, max_value]内的随机日期:

SQL>select to_date(2452641 + trunc(DBMS_RANDOM.VALUE(0, 365)), 'J') from dual;

dbms_random.seed

设置 seed 来确定随机数的起始点,对于相同的 seed 而言,随机数的任意一次变化都将是确定的.

设置种子的目的是重现随机数,用于调试.

就是说,若某一时刻调用 seed 之后,依次产生的随机数是4,6,1,...

那么当再次调用相同的 seed 之后,依次产生的随机数仍是4,6,1,...

seed 参数有两种,一种是数值型,一种是字符型(最大长度2000)

PROCEDURE seed(val IN BINARY_INTEGER );

PROCEDURE seed(val IN VARCHAR2 );

Oracle 生成指定范围内随机日期的更多相关文章

  1. JS生成指定范围内的随机数(支持随机小数)

    直接需要函数的话,直接到文章的最后面找. ============================================================= 转载:https://www.cn ...

  2. C#生成指定范围内的不重复随机数

    C#生成指定范围内的不重复随机数 // Number随机数个数 // minNum随机数下限 // maxNum随机数上限 public int[] GetRandomArray(int Number ...

  3. 关于 Math.random()生成指定范围内的随机数的公式推导

    关于 Math.random()生成指定范围内的随机数的公式推导 在 java 中,用于生成随机数的 Math 方法 random()只能生成 0-1 之间的随机数,而对于生成指定区间,例如 a-b ...

  4. javascript生成指定范围的随机整数

    JavaScript有提供一个生成值区间在(0, 1)的随机小数的函数. Math.random(); // 0.10529863457509858 如果你和喜欢的人一起执行这个函数,之后生成的随机小 ...

  5. (C#)生成指定长度的随机字符串的通用方法

    .NET(C#)生成指定长度的随机字符串的通用方法,此方法可以指定字符串的长度,是否包含数字,是否包含符号,是否包含小写字母,是否包含大写字母等, 源码: #region 生成指定长度的随机字符串 / ...

  6. 【转载】C#使用Random类来生成指定范围内的随机数

    C#的程序应用的开发中,可以使用Random随机数类的对象来生成相应的随机数,通过Random随机数对象生成随机数的时候,支持设置随机数的最小值和最大值,例如可以指定生成1到1000范围内的随机数.R ...

  7. 从a-zA-Z0-9特殊字符中生成指定数量的随机字符密码的多层for循环跳出

    师从‘百测’besttest 今日牛老师布置了一个作业,生成一个随机密码,且要包含大写字母.小写字母.数字和特殊字符,且不能重复. 想着先生成密码,然后用各字符去检查是否存在,使用for嵌套循环. i ...

  8. Mysql 生成指定时间段内的所有日期

    DELIMITER $$ DROP PROCEDURE IF EXISTS create_calendar $$ CREATE PROCEDURE create_calendar (s_date DA ...

  9. poj 1597 Uniform Generator【生成指定范围内所有随机数】

    本文参考资料:http://hi.baidu.com/bnjyjncwbdbjnzr/item/1f997cfdd225d5d143c36a58 题意:一个生成随机数的函数, Seed[x+1] =  ...

随机推荐

  1. Webpack 从0开始

    Webpack Demos https://github.com/ruanyf/webpack-demos Docs https://webpack.github.io/docs/?utm_sourc ...

  2. linux----命令替换

    0.命令替换.它的大概意思是.命令在脚本中只起一个站位符的作用:在命令运行时它会被命令自己的执行结果所替换. 1.使用格式: 1.$(command) 2.`command` 2.使用举例: 1.:打 ...

  3. [C#]Stream.Write Extension Method

    在处理Stream型态时常会使用到Stream.Write这个方法,每次都会有种疑问就是,大多数的处理都是要将Buffer整个写入,為何偏偏每次都要将索引带0,长度带為Buffer的大小呢?另外在处理 ...

  4. CSV 客座文章系列:KGroup 通过 Windows Azure 将 Qoob 内容管理发布到云中

    编辑人员注释: 今天这篇文章由 KGroup 首席软件架构师兼研发部主管 Jody Donetti 与 KGroup 技术总监 Simone Procopio 共同撰写,介绍了 KGroup 如何使用 ...

  5. KVO和通知中心

    苹果其实在语言层面为我们做了很多事,比如Category实现装饰模式的意图,target-action实现命令模式意图等等,对于观察者模式,苹果也提供了KVO和通知中心,给开发者提供了极大的便利. 观 ...

  6. 【我所認知的BIOS】—>ADU.exe

    [我所認知的BIOS]—>ADU.exe By LightSeed 2009-5-12 1.概要 在學習的過程中,肯定會要用不少的工具,作為底層的engineer那麼用的工具大多是DOS下.在D ...

  7. 算法导论——lec 10 图的基本算法及应用

    搜索一个图是有序地沿着图的边訪问全部定点, 图的搜索算法能够使我们发现非常多图的结构信息, 图的搜索技术是图算法邻域的核心. 一. 图的两种计算机表示 1. 邻接表: 这样的方法表示稀疏图比較简洁紧凑 ...

  8. mysql的查询缓存

        查询是数据库技术中最常用的操作.查询操作的过程比较简单,首先从客户端发出查询的SQL语句,数据库服务端在接收到由客户端发来的 SQL语句后, 执行这条SQL语句,然后将查询到的结果返回给客户端 ...

  9. md笔记——正则学习

    正则表达式 在线调试正则1 在线调试正则2 规则记录 \d 匹配一个数字字符.等价于[0-9] \D 匹配一个非数字字符.等价于[^0-9]. . 通配符,可以匹配任意字符. ? 表示量词" ...

  10. 如何查詢 SQL Server 資料庫中欄位值為 NULL 的資料(转)

    最近使用mssql的时候对于未null的字段查询不到 http://blogs.msdn.com/b/jchiou/archive/2008/05/01/sql-server-null.aspx 先建 ...