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

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 に答える
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 に答える