【问题标题】:PLSQL: random timestamp between 2 timestampsPLSQL:2个时间戳之间的随机时间戳
【发布时间】:2015-04-20 21:27:39
【问题描述】:

我有一个代表当前时间戳的时间戳:

now := CURRENT_TIMESTAMP;
tomorrow := now + INTERVAL '1' DAY;

现在我想在这两个值之间渲染一个随机时间戳, 我尝试使用 DBMS_RANDOM,但它不起作用

有什么帮助吗?

【问题讨论】:

    标签: oracle random plsql timestamp


    【解决方案1】:

    这将在当前时间戳和 sysdate+1 之间生成一个随机时间戳:

    SELECT TO_DATE(SYSDATE, 'MM/DD/YYYY HH24:MI:SS') + 
           dbms_random.value(0, TO_DATE(SYSDATE, 'MM/DD/YYYY HH24:MI:SS') - 
           TO_DATE(SYSDATE, 'MM/DD/YYYY HH24:MI:SS')+1) 
    FROM dual;
    

    作为 PL/SQL:

    DECLARE
      l_ran_time TIMESTAMP;
    BEGIN
      SELECT SYSDATE + 
             dbms_random.value(0, SYSDATE - 
             SYSDATE+1) 
      INTO l_ran_time
      FROM dual;
      dbms_output.put_line(l_ran_time);
    END;
    /
    

    【讨论】:

    • 我不明白为什么不这样做。我已经用匿名块更新了答案。
    • 如果您喜欢这个结果,请将问题标记为已回答。
    • 你是对的。我有那个脚本,它有点不同,所以就用了那个。我已经编辑删除了类型转换。
    猜你喜欢
    • 2021-11-16
    • 2014-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多