我试图更新我的数据库并更改日期。我做了一些研究,但我没有发现任何问题。所以我使用了两个时间戳。
我试过这种方法:
UPDATE `ps_blog_post`
SET `time_add` = ROUND((RAND() * (1387888821-1357562421)+1357562421))
现在新的日期到处都是:
0000:00:00
非常感谢Anykind的帮助
答案 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);
答案 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)随机的日期......