Saltar al contenido

Insertar / actualizar fecha aleatoria en MySQL

Contamos con la contestación a esta dificultad, o por lo menos eso esperamos. Si continuas con inquietudes coméntalo, que con gusto te responderemos

Solución:

Puede obtener un número entero aleatorio con esta expresión:

Para obtener un entero aleatorio R en el rango i <= R FLOOR(i + RAND() * (j - i)). Por ejemplo, para obtener un número entero aleatorio en el rango 7 <= R <12, puede usar la siguiente declaración:

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

https://dev.mysql.com/doc/refman/8.0/en/mathematical-functions.html#function_rand

Úselo para generar un número aleatorio 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;

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

Esto establece 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.

Tu principal problema es que RAND() no permite un rango de valores como el que especifica. Siempre devolverá un valor entre 0 y 1.

No puedo encontrar una solución aleatoria 1..14 en este momento, pero para comenzar, esto elegirá una fecha aleatoria dentro de los últimos 10 días:

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

Comentarios y calificaciones

Tienes la opción de añadir valor a nuestro contenido tributando tu veteranía en las notas.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *