質問: 【目標】 ある範囲でランダムなTIMESTAMPの値を作成したい 【前提】 実行環境:Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production 【実行SQL】 ※TABLE1:TIMESTAMP型の列のみ ``` 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) ``` 【実行結果】 秒までがランダムになる。ミリ秒が「.000000000」となりランダムにならない
回答: ※ユーザーはSKATP=user37124です。 @kunifさんのコメントをヒントに目標達成できました。 @Kohei TAMURA、@kunifさんありがとうございました。 ``` SELECT --20180101から現在の日時までのランダム日付を取得 SYSTIMESTAMP + (SYSTIMESTAMP - to_TIMESTAMP(SYSTIMESTAMP +MOD(ABS(DBMS_RANDOM.RANDOM()),CURRENT_DATE -TO_DATE('20180101','YYYYMMDD')))) FROM dual; ```