PLSQL:2个时间戳之间的随机时间戳

Posted

技术标签:

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

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

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

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

有什么帮助吗?

【问题讨论】:

【参考方案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;
/

【讨论】:

我不明白为什么不这样做。我已经用匿名块更新了答案。 如果您喜欢这个结果,请将问题标记为已回答。 你是对的。我有那个脚本,它有点不同,所以就用了那个。我已经编辑删除了类型转换。

以上是关于PLSQL:2个时间戳之间的随机时间戳的主要内容,如果未能解决你的问题,请参考以下文章

如何在java中生成随机时间戳?

2 个时间戳之间的 SQL Redshift 天数差异

如何将日期时间戳写入 PLSQL

在php中查找2个unix时间戳之间的天数

区块链 智能合约中获取不了时间戳 随机数怎么办

区块链 智能合约中获取不了时间戳 随机数怎么办