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

时间:2015-12-15 05:43:50

标签: datetime random

在我的一个表格中,我有日期时间字段,其中表格列中的数据填充了类似" 2016-01-07 01:33:00"。

我想要做的是在不更改时间的情况下将日期更改为范围(ie: 2016-02-01 thru 2016-02-28)内的随机日期。最终结果可能是" 2016-02-13 01:33:00"。

mysql命令字符串可以完成此任务吗?

2 个答案:

答案 0 :(得分:1)

这样的东西
UPDATE someTable SET someDate = DATE_ADD(
    someDate,
    INTERVAL
        DATEDIFF(rangeStart, someDate) +
        ROUND(RAND()*DATEDIFF(rangeEnd, rangeStart))
    DAY
);

其中someTable.someDate是您现有的数据,rangeStartrangeEnd是您的目标日期范围的边界。

在这里,您可以获取初始日期,为其添加足够的天数以达到范围开始,然后进一步添加一个不大于目标范围内天数的随机天数。

答案 1 :(得分:0)

在MsSQL中可能是:

  

选择dateadd(day,cast((RAND()* 30)为int),getdate())

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