Рандомизировать часть времени поля даты - PullRequest
1 голос
/ 27 августа 2009

Как лучше всего рандомизировать временную часть для столбца DATE, используя Oracle 10g?

Например, часть даты для данных была установлена ​​следующим образом:

UPDATE table_name SET column_ts = SYSDATE - 120 + MOD(ROWNUM, 35)

Мне бы хотелось, чтобы часть времени имела разные значения для каждой строки.

Ответы [ 2 ]

3 голосов
/ 27 августа 2009

Выберите случайное число от 0 до 86400 (количество секунд в дне)

Добавьте случайное / 86400 к вашей дате.

SELECT TRUNC(SYSDATE)+DBMS_RANDOM.value(0, 86400-1)/86400 FROM DUAL

Сложение:

UPDATE table_name
SET    column_ts = SYSDATE - 120 + MOD(ROWNUM, 35) + DBMS_RANDOM.value(0, 86400-1)/86400;
2 голосов
/ 27 августа 2009
select trunc(sysdate)+dbms_random.value from dual;
...