¿Cómo actualizaría una columna con una fecha aleatoria en las últimas 2 semanas usando MySQL?Insertar/Actualizar fecha aleatoria en MySQL
Por ejemplo (código no funciona realmente):
UPDATE mytable
SET col = sysdate() - rand(1, 14);
¿Cómo actualizaría una columna con una fecha aleatoria en las últimas 2 semanas usando MySQL?Insertar/Actualizar fecha aleatoria en MySQL
Por ejemplo (código no funciona realmente):
UPDATE mytable
SET col = sysdate() - rand(1, 14);
usted puede obtener un número entero aleatorio con esta expresión:
Para obtener un número entero aleatorio R en el intervalo i < = R < j, utilice la expresión
FLOOR(i + RAND() * (j - i))
. Para ejemplo, para obtener un número entero aleatorio en la gama de la gama de 7 < = R < 12, que podría utilizar la siguiente declaración:SELECT FLOOR(7 + (RAND() * 5));
http://dev.mysql.com/doc/refman/5.1/en/mathematical-functions.html
uso que para generar un azar cantidad de días, horas o minutos (según la resolución) y agregue ese número a la fecha actual. La expresión completa sería algo como esto:
SELECT NOW() - INTERVAL FLOOR(RAND() * 14) DAY;
Su principal problema es que RAND()
no permite un rango de valores como se especifica. Siempre devolverá un valor entre 0 y 1.
No puedo encontrar una solución aleatoria 1..14 en este momento, pero para comenzar, se elegirá una fecha aleatoria en los últimos 10 días:
SET col = DATE(DATE_SUB(NOW(), INTERVAL ROUND(RAND(1)*10) DAY))
UPDATE mytable
SET col = CURRENT_TIMESTAMP - INTERVAL FLOOR(RAND() * 14) DAY
ajusta col
a una fecha entre (e incluyendo) la fecha actual y la fecha actual - 13 días. Multiplique por 15 para obtener la fecha actual: 14 días.
Esta es una respuesta realmente antigua y realmente vieja, pero esto resolvió un problema donde tuve que presentar más de 300 fechas al azar. ¡Gracias! –
@IsmaelMiguel, esta es una forma muy indirecta de hacerlo. Use timestamps http://stackoverflow.com/a/28944156/632951, es más sencillo y menos propenso a errores. – Pacerier
@Pacerier - Ambos métodos se ven bien para mí (y bastante similares). ¿Qué posibles errores tienes en mente? –