在我的一个表格中,我有日期时间字段,其中表格列中的数据填充了类似" 2016-01-07 01:33:00
"。
我想要做的是在不更改时间的情况下将仅日期更改为范围(ie: 2016-02-01 thru 2016-02-28
)内的随机日期。最终结果可能是" 2016-02-13 01:33:00
"。
mysql命令字符串可以完成此任务吗?
答案 0 :(得分:1)
像
这样的东西UPDATE someTable SET someDate = DATE_ADD(
someDate,
INTERVAL
DATEDIFF(rangeStart, someDate) +
ROUND(RAND()*DATEDIFF(rangeEnd, rangeStart))
DAY
);
其中someTable.someDate
是您现有的数据,rangeStart
和rangeEnd
是您的目标日期范围的边界。
在这里,您可以获取初始日期,为其添加足够的天数以达到范围开始,然后进一步添加一个不大于目标范围内天数的随机天数。
答案 1 :(得分:0)
在MsSQL中可能是:
选择dateadd(day,cast((RAND()* 30)为int),getdate())
用输入日期替换getdate()。 (兰德()* 30)用于随机生成最多30天的天数。