Blair - 6 months ago 43

SQL Question

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);

Answer

You can get a random integer with this expression:

To obtain a random integer R in the range i <= R < j, use the expression

. For example, to obtain a random integer in the range the range 7 <= R < 12, you could use the following statement:`FLOOR(i + RAND() * (j - i))`

`SELECT FLOOR(7 + (RAND() * 5));`

http://dev.mysql.com/doc/refman/5.1/en/mathematical-functions.html

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;
```