生成兰特时间

时间:2012-04-07 08:06:23

标签: mysql

我想在created列设置随机时间值,例如:

UPDATE review  set created=now()-rand(1,30)

created=now()-rand(1,30)不起作用。如何纠正?

1 个答案:

答案 0 :(得分:6)

您必须使用DATE_ADD或DATE_SUB。

这样的事情:

UPDATE
   review
SET
   created = DATE_ADD(NOW(), INTERVAL (24*RAND()) HOUR)

检查the reference以了解如何使用日期和时间功能。

这是一个更复杂的例子,它生成一个25年前开始的随机日期。

UPDATE 
    review
SET
    created =
      DATE_ADD( DATE_ADD( DATE_ADD( DATE_ADD( DATE_ADD( DATE_ADD(
         NOW(), 
         INTERVAL (-24*RAND())-1 YEAR),
         INTERVAL 11*RAND() MONTH),
         INTERVAL 30*RAND() DAY),
         INTERVAL 23*RAND() HOUR),
         INTERVAL 59*RAND() MINUTE),
         INTERVAL 60*RAND() SECOND)