0

我将使用DATE_ADD,现在如果我想获得从 2012-10-1 到现在的时间,我该怎么办?时间格式:2012-12-01 00:32:01

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

当我使用上面的代码时,它得到的时间不是我想要的。谢谢。如何纠正?

例如:30*RAND(3) 价值是多少?

4

2 回答 2

0

尝试这个

SET @MIN = '2010-04-30 14:53:27';
SET @MAX = '2012-04-30 14:53:27';
SELECT TIMESTAMPADD(SECOND, FLOOR(RAND() * TIMESTAMPDIFF(SECOND, @MIN, @MAX)), @MIN);
于 2012-12-27T17:22:50.177 回答
0

FROM_UNIXTIME(UNIX_TIMESTAMP('2012-10-01') + (RAND() * (UNIX_TIMESTAMP(NOW()) - UNIX_TIMESTAMP('2012-10-01'))), '%Y-%m-%d %H:%i:%s')

应该这样做,我想。

函数可以在这里找到。

于 2012-12-27T17:10:08.927 回答