在2个日期之间插入EPOCH和Unix TimeStamp

时间:2016-07-28 09:26:19

标签: mysql sql

我有一个小问题,我有一个插入SQL语句,如下所示:

INSERT INTO table (`col`, `col`, `col`)
    VALUES '1', '2', FLOOR(950000+RAND()*(550000-950000));

其中一个专栏是EPOCH Unix TImeStamp,我希望能够在两个日期之间进行随机插入:例如:

之间的随机插入值:1469696000和1479996000

如何使用RAND实现这一点,但是设置条件使它必须在这些值之间,所以当它的转换器在这些EPOCH日期之间时?

1 个答案:

答案 0 :(得分:1)

你可以尝试一下:

INSERT INTO table (`col`, `col`, `col`)
    VALUES '1', '2', (FLOOR( 1469696000 + RAND( ) *(1479996000-1469696000 )))

注意:

(FLOOR( A + RAND( ) * B)) will return a random number between A and A+B (inclusive)

修改

为了在Random到今年年底之间获得now unix时间戳:

(FLOOR( UNIX_TIMESTAMP() + RAND( ) *(UNIX_TIMESTAMP((CURDATE() - INTERVAL DAYOFYEAR(CURDATE()) DAY) + INTERVAL 1 YEAR) - UNIX_TIMESTAMP())))

所以这是完整的查询:

INSERT INTO TABLE (
    `col`,
    `col`,
    `col`
)
VALUES
    '1',
    '2',
    (
        FLOOR(
            UNIX_TIMESTAMP() + RAND() * (
                UNIX_TIMESTAMP(
                    (
                        CURDATE() - INTERVAL DAYOFYEAR(CURDATE()) DAY
                    ) + INTERVAL 1 YEAR
                ) - UNIX_TIMESTAMP()
            )
        )
    )