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



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

我尝试过这种方法:

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

现在到处都是新日期:

0000:00:00

任何帮助都将不胜感激

试试这个来获取两个时间戳之间的时间戳

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

小提琴

您的想法是正确的,您从您使用的 int 文字转换回时间戳似乎不正常 - 您缺少对FROM_UNIXTIME的显式调用:

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

试试这个:

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

我陈述当前数据,你从今天减去秒。.该示例从今天开始随机取日期减去 30 天 (60*60*24*30)...

最新更新