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

Sta*_*ski 3 mysql sql random timestamp sql-update

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

我试过这种方法:

UPDATE `ps_blog_post` 
SET `time_add` = ROUND((RAND() * (1387888821-1357562421)+1357562421))
Run Code Online (Sandbox Code Playgroud)

现在,新日期到处都是:

0000:00:00
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激

M K*_*aid 17

试试这两个两个时间戳之间的时间戳

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);
Run Code Online (Sandbox Code Playgroud)

小提琴


Mur*_*nik 5

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

UPDATE `ps_blog_post` 
SET `time_add` = 
     FROM_UNIXTIME(ROUND((RAND() * (1387888821 - 1357562421) + 1357562421)))
Run Code Online (Sandbox Code Playgroud)