我想生产一个随机时间,例如2012.1.1 到2012.3.1的某一个时间2012.1.3 11:01:23, 而且这个时间是上班时间,这个该如何产生呢?上班时间上午9-12点,下午2-4.30点

解决方案 »

  1.   

    最好的方案是你,只存一个uniox日期截,
    就是一个int数,
    你再生成一个其范围内的即可。
      

  2.   

    SELECT to_date(TRUNC(DBMS_RANDOM.VALUE(
    to_number(to_char(to_date('20120101 ','yyyymmdd'),'J')),
    to_number(to_char(to_date('20120301','yyyymmdd')+1,'J')))),'J')+
    DBMS_RANDOM.VALUE(1350,1800)/3600
    prize_time FROM dual;
      

  3.   

    加注释
    SELECT to_date(TRUNC(DBMS_RANDOM.VALUE(
    to_number(to_char(to_date('20120101 ','yyyymmdd'),'J')),--开始时间
    to_number(to_char(to_date('20120301','yyyymmdd')+1,'J')))),'J')+ --结束时间
    DBMS_RANDOM.VALUE(1350,1800)/3600   --上班时间
    prize_time FROM dual;