根据已知日期时间随机更新日期时间字段

时间:2013-11-27 07:41:52

标签: mysql sql datetime random

是否可以查询数据库行,并根据一个字段(DATETIME)随机将1-3天(更好的工作日)添加到同一行的另一个字段中?

因此查询已知的DATETIME字段,需要从中获取时间然后随机添加1-3天:

SELECT complete_date 
FROM training 
WHERE tr_id = 18;

AND查询需要更新的字段..

UPDATE training 
SET finalized = (rand + (1-3 days)) 
WHERE tr_id = 18

MySQL Workbench软件。

2 个答案:

答案 0 :(得分:3)

是的,您需要INTERVAL关键字。

UPDATE training SET finalized = complete_date + INTERVAL FLOOR(1 + (RAND() * 3)) DAY

增加工作日要困难一些。看看这个stored procedue

答案 1 :(得分:0)

create table training (tr_id integer, complete_date datetime, finalized datetime);

insert into training values(18, NOW(), null);
insert into training values(18, NOW(), null);
insert into training values(18, NOW(), null);
insert into training values(18, NOW(), null);

update training set finalized = DATE_ADD(complete_date, Interval RAND()*24*3 HOUR) where tr_id = 18;

因此,您应该在某个日期添加随机数以获得新的“随机日期”。 在我的示例中,我将0到72小时的随机添加到初始日期'complete_date',您可以使用SECONDS或您需要的。

仅仅支持商业日并不容易。 (俄罗斯的NY hollidays怎么样 - 大约10天:)