我有一个小问题,我有一个插入SQL语句,如下所示:
INSERT INTO table (`col`, `col`, `col`)
VALUES '1', '2', FLOOR(950000+RAND()*(550000-950000));
其中一个专栏是EPOCH Unix TImeStamp,我希望能够在两个日期之间进行随机插入:例如:
之间的随机插入值:1469696000和1479996000
如何使用RAND实现这一点,但是设置条件使它必须在这些值之间,所以当它的转换器在这些EPOCH日期之间时?
答案 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()
)
)
)