是否可以查询数据库行,并根据一个字段(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软件。
答案 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天:)