我将使用 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)
价值是多少?
答案 0 :(得分:0)
FROM_UNIXTIME(UNIX_TIMESTAMP('2012-10-01') + (RAND() * (UNIX_TIMESTAMP(NOW()) - UNIX_TIMESTAMP('2012-10-01'))), '%Y-%m-%d %H:%i:%s')
我想应该这样做。
可以找到here的功能。
答案 1 :(得分: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);