【问题标题】:Change a date randomly by +- 5 days in mysql? [duplicate]在mysql中将日期随机更改+- 5天? [复制]
【发布时间】:2012-11-28 10:41:57
【问题描述】:

可能重复:
Insert/ Update random date in MySQL

如何在mysql中随机更改日期+- 5天?

UPDATE student SET date = date*(RAND()*-5,+5)

【问题讨论】:

  • 在 -5 到 +5 的范围内还是 +5 或 -5 的范围内?
  • 我正在使用 dreamcoder 编辑我的表格。我有 1000 行数据。每行都有一个日期。我想将日期随机更改 +5 天或 -5 天。

标签: mysql date datetime


【解决方案1】:

SELECT 5 + ROUND(RAND()) * -10 将给出 5-5,您可以将它们与 DATE_ADD() 函数结合使用。

【讨论】:

    【解决方案2】:

    试试这个:

    UPDATE `student` SET `date` = DATE_ADD(`date`, INTERVAL ((1 - ROUND((RAND()))*2)*5) DAY)
    

    【讨论】:

      【解决方案3】:

      以下查询输出随机日期 +-5 天后 (CURDATE())

      select ADDDATE(CURDATE(), INTERVAL ROUND(RAND()*10)-5 DAY)
      

      【讨论】:

        【解决方案4】:
        UPDATE student SET date = ADDDATE(date, INTERVAL ROUND((rand() * 9) - 4) DAY);
        

        【讨论】:

          【解决方案5】:

          试试这样的:

          select case when (RAND()*10) >= 5 then date_add(<date_col>, INTERVAL 5 DAY)
                      else date_add(<date_col>, INTERVAL -5 DAY)
                      end
          from <your_table>
          

          SQL Fiddle demo

          你可以像这样更新你的表:

          UPDATE student SET `date`=
           case when (RAND()*10) >= 5 then date_add(`date`, INTERVAL 5 DAY)
                      else date_add(`date`, INTERVAL -5 DAY)
                      end;
          

          【讨论】:

            猜你喜欢
            • 2011-01-09
            • 2013-08-10
            • 2011-05-31
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2016-05-16
            • 2013-07-15
            • 1970-01-01
            相关资源
            最近更新 更多