【问题标题】:How to randomly generate date between specific date in mysql如何在mysql中的特定日期之间随机生成日期
【发布时间】:2017-06-27 09:08:50
【问题描述】:

我试过这个:

SELECT TIMESTAMPADD(SECOND, FLOOR(RAND() * TIMESTAMPDIFF(SECOND, 2017-01-01', '2017-02-01 ';)), 2017-01-01 );

我想随机生成从 1 月 1 日到 30 日的日期

【问题讨论】:

  • 这个 sn-p 有很多问题,从不匹配的单引号 (') 到缺少 FROM 子句等等。
  • @Muhammad 也许你必须这样写。 SELECT TIMESTAMPADD(SECOND, FLOOR(RAND() * TIMESTAMPDIFF(SECOND, '2013-01-07', '2013-12-24 ')), '2013-01-07')
  • @roberto06 我是堆栈溢出的新手,你能解释一下我们必须生成从 2017-1-1 到 2017-2-1 的随机日期

标签: php mysql database


【解决方案1】:

我认为这是解决方案

 SELECT '2017-01-01' + INTERVAL ROUND(RAND() * (30-1) + 1) DAY 

【讨论】:

    【解决方案2】:

    在 MS SQL 中:

    声明@StartDT DATE = '2017-01-01' , @EndDT 日期 = '2017-01-31'

    选择 DATEADD(DAY, nbr - 1, @StartDT) FROM (SELECT ROW_NUMBER() OVER (ORDER BY c.object_id) AS Nbr FROM sys.columns c ) 国家统计局 WHERE nbr - 1

    【讨论】:

    • 请在 MySql 中尝试这样的事情
    【解决方案3】:
    SELECT DATE_FORMAT(FROM_UNIXTIME(
     ROUND((RAND() * (UNIX_TIMESTAMP('2013-12-24')-UNIX_TIMESTAMP('2013-01-07')))+UNIX_TIMESTAMP('2013-01-07'))
    ),'%Y-%m-%d')
    

    对于第一个 UNIX_TIMESTAMP() 函数,使用较大的日期,对于第二个和第三个 UNIX_TIMESTAMP() 函数,使用较小的日期。

    【讨论】:

      【解决方案4】:

      试试这个

      SELECT TIMESTAMPADD(SECOND, FLOOR(RAND() * TIMESTAMPDIFF(SECOND, '2013-01-07', '2013-12-24 ')), '2013-01-07')
      

      【讨论】:

        猜你喜欢
        • 2010-12-30
        • 2015-10-01
        • 2019-04-02
        • 2016-05-16
        • 2010-10-07
        • 2022-01-23
        • 2014-02-25
        相关资源
        最近更新 更多