Datetime 如何将现有日期更新为范围内的随机日期?

Datetime 如何将现有日期更新为范围内的随机日期?,datetime,random,Datetime,Random,在我的一个表中,我有一个datetime字段,其中表列中的数据填充有类似“2016-01-07 01:33:00”的内容 我想做的是只将日期更改为范围(即:2016-02-01至2016-02-28)内的随机日期,而不更改时间。最终结果可能是“2016-02-13 01:33:00” 什么mysql命令将完成此任务?在MsSQL中,它可能是: 选择dateadd(day,强制转换((RAND()*30)为int),getdate()) 用输入日期替换getdate()。 (RAND()*30)用

在我的一个表中,我有一个datetime字段,其中表列中的数据填充有类似“
2016-01-07 01:33:00
”的内容

我想做的是只将日期更改为范围(
即:2016-02-01至2016-02-28
)内的随机日期,而不更改时间。最终结果可能是“
2016-02-13 01:33:00

什么mysql命令将完成此任务?

在MsSQL中,它可能是:

选择dateadd(day,强制转换((RAND()*30)为int),getdate())

用输入日期替换getdate()。 (RAND()*30)用于随机生成最多30天的天数。

类似

UPDATE someTable SET someDate = DATE_ADD(
    someDate,
    INTERVAL
        DATEDIFF(rangeStart, someDate) +
        ROUND(RAND()*DATEDIFF(rangeEnd, rangeStart))
    DAY
);
其中
someTable.sometate
是您现有的数据,
rangeStart
rangeEnd
是您目标日期范围的边界

在这里,您选择初始日期,向其添加足够的天数以达到范围开始,然后进一步添加不超过目标范围内天数的随机天数