sql在两个日期之间随机更新

时间:2013-12-25 18:46:40

标签: mysql sql random timestamp sql-update

我试图更新我的数据库并更改日期。我做了一些研究,但我没有发现任何问题。所以我使用了两个时间戳。

我试过这种方法:

UPDATE `ps_blog_post` 
SET `time_add` = ROUND((RAND() * (1387888821-1357562421)+1357562421))

现在新的日期到处都是:

0000:00:00

非常感谢Anykind的帮助

3 个答案:

答案 0 :(得分:15)

尝试使用此方法获取两个时间戳之间的时间戳

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);

Fiddle

答案 1 :(得分:5)

你有正确的想法,你从你正在使用的int文字到时间戳的转换似乎已经关闭了 - 你错过了对FROM_UNIXTIME的显式调用:

UPDATE `ps_blog_post` 
SET `time_add` = 
     FROM_UNIXTIME(ROUND((RAND() * (1387888821 - 1357562421) + 1357562421)))

答案 2 :(得分:2)

试试这个:

select DATEADD(SECOND, - Round(259200 * RAND(), 0), getdate())

我说明当前数据,你从今天减去秒数。这个例子从今天起减去30天(60 * 60 * 24 * 30)随机的日期......