2015-12-15 53 views
1

在我的一個表中,我有datetime字段,其​​中表格列中的數據填充了類似「2016-01-07 01:33:00」之類的字段。如何將現有日期更新爲範圍內的隨機日期?

我想要做的是改變ONLY不改變時間日期的範圍(ie: 2016-02-01 thru 2016-02-28)內的隨機日期。最終結果可能是「2016-02-13 01:33:00」。

什麼mysql命令 string會完成這個任務嗎?

回答

1

喜歡的東西

UPDATE someTable SET someDate = DATE_ADD(
    someDate, 
    INTERVAL 
     DATEDIFF(rangeStart, someDate) + 
     ROUND(RAND()*DATEDIFF(rangeEnd, rangeStart)) 
    DAY 
); 

其中someTable.someDate是現有數據,和rangeStartrangeEnd是的邊界的目標日期範圍。

這裏您將初始日期添加到足夠的天數以達到範圍起點,然後再添加一個不超過您的目標範圍內的天數的隨機天數。

+0

完美。謝謝 – Alby

0

在MSSQL中則可能是:

選擇DATEADD(天,投((RAND()* 30)爲INT),GETDATE())

替代GETDATE()與您輸入日期。 (RAND()* 30)用來隨機生成的天數高達30