一尘不染

MySQL在给定的日期时间范围内插入随机的日期时间

mysql

使用SQL时,是否可以在提供范围的列中插入随机的datetime值?

例如,给定范围2010-04-30 14:53:272012-04-30 14:53:27

我对范围部分感到困惑。正如我将要做的

INSERT INTO `sometable` VALUES (RND (DATETIME()))

阅读 540

收藏
2020-05-17

共1个答案

一尘不染

这是一个应该有所帮助的示例:

INSERT INTO `sometable` VALUES(
    FROM_UNIXTIME(
        UNIX_TIMESTAMP('2010-04-30 14:53:27') + FLOOR(0 + (RAND() * 63072000))
    )
)

它使用日期2010-04-30 14:53:27作为基础,将其转换为Unix时间戳,并向基础日期添加0到+2年的随机秒数,并将其转换回DATETIME。

它应该很接近,但在更长的时间内会leap年,其他调整会使其失效。

2020-05-17