mysql - rango - sql actualización aleatoria entre dos fechas
generar rango de fechas sql (3)
Intenté actualizar mi base de datos y cambiar las fechas. Investigué un poco, pero no encontré ningún problema. Entonces utilicé dos marcas de tiempo.
Intenté hacer ese método:
UPDATE `ps_blog_post`
SET `time_add` = ROUND((RAND() * (1387888821-1357562421)+1357562421))
Ahora en todas partes, la nueva fecha es:
0000:00:00
Cualquier tipo de ayuda será muy apreciada
Pruebe con esta marca de tiempo de obtener dos dos entre dos marcas de tiempo
SET @MIN = ''2013-01-07 00:00:00'';
SET @MAX = ''2013-12-24 00:00:00'';
UPDATE `ps_blog_post`
SET `time_add` = TIMESTAMPADD(SECOND, FLOOR(RAND() * TIMESTAMPDIFF(SECOND, @MIN, @MAX)), @MIN);
Tiene la idea correcta, su conversión de los literales int que está utilizando a la marca de tiempo parece FROM_UNIXTIME
: le falta una llamada explícita a FROM_UNIXTIME
:
UPDATE `ps_blog_post`
SET `time_add` =
FROM_UNIXTIME(ROUND((RAND() * (1387888821 - 1357562421) + 1357562421)))
Prueba esto:
select DATEADD(SECOND, - Round(259200 * RAND(), 0), getdate())
Declaro los datos actuales y restas segundos a partir de hoy ... El ejemplo toma una fecha aleatoria a partir de hoy y menos 30 días (60 * 60 * 24 * 30) ...