特定日期的 Oracle 随机时间戳

Posted

技术标签:

【中文标题】特定日期的 Oracle 随机时间戳【英文标题】:Oracle random timestamp for specific date 【发布时间】:2020-12-07 10:07:33 【问题描述】:

在 Oracle 中,我正在生成随机日期。现在我需要为每个日期生成一个带有本地区域的随机时间戳。此代码仅生成当前时间戳:

SYSDATE + dbms_random.value(0, SYSDATE - SYSDATE +1) INTO l_ran_time FROM dual;

因此,我尝试将 SYSDATE 替换为包含正确日期的变量的名称,但收到错误消息:

*Cause:    supplied scn was beyond the bounds of a valid scn.
*Action:   use a valid scn.

谁能帮帮我?

【问题讨论】:

“所以我尝试替换”,显示你是如何尝试的 看起来你隐藏了一些东西,因为在你的 sn-p 中没有关于 SCN 的东西。请发布您使用的所有代码(包括l_ran_time 的使用)。 【参考方案1】:

您可以将您的问题表述为您想在当前时间戳中添加一些介于 0 和 246060 之间的随机秒数:

SELECT
    CURRENT_TIMESTAMP +
    numToDSInterval(dbms_random.value(1, 24*60*60), 'second') AS random_ts
FROM dual;

【讨论】:

以上是关于特定日期的 Oracle 随机时间戳的主要内容,如果未能解决你的问题,请参考以下文章

时间戳转为日期格式

PostgreSQL 获取两个日期时间/时间戳之间的随机日期时间/时间戳

如何在Oracle中将时间戳转化为日期格式

怎么在Oracle中将时间戳转化为日期格式

怎么在Oracle中将时间戳转化为日期格式

JAVA 日期转换时间戳