Inserisci / Aggiorna data casuale in MySQL

Come aggiornare una colonna con una data casuale nelle ultime 2 settimane usando MySQL?

Ad esempio (il codice in realtà non funziona):

UPDATE mytable SET col = sysdate() - rand(1, 14); 

È ansible ottenere un numero intero casuale con questa espressione:

Per ottenere un intero casuale R nell’intervallo i <= R FLOOR(i + RAND() * (j - i)) . Ad esempio, per ottenere un numero intero casuale nell’intervallo nell’intervallo 7 <= R <12, è possibile utilizzare la seguente istruzione:

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

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

Usalo per generare un numero casuale di giorni, ore o minuti (a seconda della risoluzione) e aggiungi quel numero alla data corrente. La piena espressione sarebbe qualcosa del genere:

 SELECT NOW() - INTERVAL FLOOR(RAND() * 14) DAY; 
 UPDATE mytable SET col = CURRENT_TIMESTAMP - INTERVAL FLOOR(RAND() * 14) DAY 

Imposta una data compresa tra (e includendo) la data corrente e la data corrente – 13 giorni. Moltiplicare per 15 per ottenere la data corrente – 14 giorni.

Il tuo problema principale è che RAND() non consente un intervallo di valori come specificato. Restituirà sempre un valore compreso tra 0 e 1.

Al momento non riesco a trovare una soluzione casuale 1..14, ma per iniziare, selezioneremo una data casuale negli ultimi 10 giorni:

 SET col = DATE(DATE_SUB(NOW(), INTERVAL ROUND(RAND(1)*10) DAY))