How would I update a column with a random date in the past 2 weeks using MySQL?
For example (code doesn't actually work):
UPDATE mytable
SET col = sysdate() - rand(1, 14);
解决方案
You can get a random integer with this expression:
To obtain a random integer R in the
range i <= R < j, use the expression
FLOOR(i + RAND() * (j - i)). For
example, to obtain a random integer in
the range the range 7 <= R < 12, you
could use the following statement:
SELECT FLOOR(7 + (RAND() * 5));
Use that to generate a random number of days, hours or minutes (depending on the resolution) and add that number to current date. Full expression would be something like this:
SELECT NOW() - INTERVAL FLOOR(RAND() * 14) DAY;