

【目標】  
ある範囲でランダムなTIMESTAMPの値を作成したい

【前提】  
実行環境：Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit
Production

【実行SQL】

※TABLE1：TIMESTAMP型の列のみ

[code]

    INSERT INTO TABLE1
    SELECT 
    --20180101から現在の日時までのランダム日付を取得
      SYSTIMESTAMP +MOD(ABS(DBMS_RANDOM.RANDOM()),CURRENT_DATE -TO_DATE('20180101','YYYYMMDD'))
    FROM
    (SELECT 0 FROM ALL_CATALOG WHERE ROWNUM <= 1000) 
    ,(SELECT 0 FROM ALL_CATALOG WHERE ROWNUM <= 500)
    
[/code]

【実行結果】  
秒までがランダムになる。ミリ秒が「.000000000」となりランダムにならない


CC BY-SA 4.0
2019-12-18T01:50:19.330
61528
2022-01-01T08:05:30.440
2019-12-18T02:07:45.397
37113
37113
question
sql oracle
ある範囲でランダムなTIMESTAMPの値を作成したい


※ユーザーはSKATP＝user37124です。

@kunifさんのコメントをヒントに目標達成できました。

@Kohei TAMURA、@kunifさんありがとうございました。

[code]

    SELECT 
    --20180101から現在の日時までのランダム日付を取得
      SYSTIMESTAMP + (SYSTIMESTAMP - to_TIMESTAMP(SYSTIMESTAMP +MOD(ABS(DBMS_RANDOM.RANDOM()),CURRENT_DATE -TO_DATE('20180101','YYYYMMDD'))))
    FROM dual;
    
[/code]


CC BY-SA 4.0
2019-12-20T06:44:52.347
61614
2019-12-20T06:44:52.347
61528
answer