随机化日期字段的时间部分

时间:2009-08-27 16:42:30

标签: sql oracle random

使用Oracle 10g随机化DATE列的时间部分的最佳方法是什么?

例如,数据的日期部分设置如下:

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

我希望时间部分的每一行都有不同的值。

2 个答案:

答案 0 :(得分:3)

选择0到86400之间的随机数(一天中的秒数)

将random / 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;

答案 1 :(得分:2)

select trunc(sysdate)+dbms_random.value from dual;