Come aggiornare una colonna con una data casuale nelle ultime 2 settimane utilizzando MySQL?Inserisci/Aggiorna data casuale in MySQL
Per esempio (codice in realtà non funziona):
UPDATE mytable
SET col = sysdate() - rand(1, 14);
Come aggiornare una colonna con una data casuale nelle ultime 2 settimane utilizzando MySQL?Inserisci/Aggiorna data casuale in MySQL
Per esempio (codice in realtà non funziona):
UPDATE mytable
SET col = sysdate() - rand(1, 14);
è possibile ottenere un numero intero casuale con questa espressione:
Per ottenere un casuale intero R nella gamma i < = R < j, utilizzare l'espressione
FLOOR(i + RAND() * (j - i))
. Ad esempio, per ottenere un numero intero casuale in range range 7 < = R < 12, si possibile utilizzare la seguente dichiarazione:SELECT FLOOR(7 + (RAND() * 5));
http://dev.mysql.com/doc/refman/5.1/en/mathematical-functions.html
Usa che per generare un caso numero di giorni, ore o minuti (a seconda della risoluzione) e aggiungere quel numero alla data corrente. La piena espressione sarebbe qualcosa del genere:
SELECT NOW() - INTERVAL FLOOR(RAND() * 14) DAY;
vostro problema principale è che RAND()
non permette un range 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))
UPDATE mytable
SET col = CURRENT_TIMESTAMP - INTERVAL FLOOR(RAND() * 14) DAY
Questa imposta col
ad una data compresa tra (compreso) la data corrente e la data corrente - 13 giorni. Moltiplicare per 15 per ottenere la data corrente - 14 giorni.
Questa è una risposta molto vecchia e una domanda molto vecchia, ma questo ha risolto un problema in cui dovevo introdurre oltre 300 date casuali. Grazie! –
@IsmaelMiguel, Questo è in realtà un modo molto indiretto di farlo. Usa timestamp http://stackoverflow.com/a/28944156/632951, è più semplice e meno incline agli errori. – Pacerier
@Pacerier: entrambi i metodi mi sembrano soddisfacenti (e abbastanza simili). Quali potenziali errori hai in mente? –