【问题标题】:update multiple rows with random datetime sql server使用随机日期时间 sql server 更新多行
【发布时间】:2016-10-20 13:00:52
【问题描述】:

我有表 sql server 2005,其中包含 3000 行这样的

<<ID>>             <<Time>>
5620298     2015-01-05 16:00:00.000 
5620299     2015-01-06 16:00:00.000 
5620300     2015-01-07 16:00:00.000 
5620301     2015-01-08 16:00:00.000 
5620302     2015-01-09 16:00:00.000 
5620303     2015-01-10 16:00:00.000 
5620304     2015-01-11 16:00:00.000 
5620305     2015-01-12 16:00:00.000 
5620306     2015-01-13 16:00:00.000 

我想在 1 到 10 分钟之间随机更改时间

<<ID>>             <<Time>>
5620298     2015-01-05 16:02:00.000 
5620299     2015-01-06 16:05:00.000 
5620300     2015-01-07 16:01:00.000 
5620301     2015-01-08 16:00:00.000 
5620302     2015-01-09 16:02:00.000 
5620303     2015-01-10 16:07:00.000 
5620304     2015-01-11 16:06:00.000 
5620305     2015-01-12 16:09:00.000 
5620306     2015-01-13 16:00:00.000 

我该怎么做?

谢谢!

【问题讨论】:

  • 您能否显示表格架构并格式化您的数据(输入和输出)以便我们更好地查看?

标签: sql-server date datetime sql-server-2005


【解决方案1】:

你可以:

UPDATE TBL
    SET [TIME] = DATEADD(MINUTE, ABS(CHECKSUM(NEWID()) % 10) + 1, [TIME])

效率不是很高,但大概只是为了测试。

【讨论】:

    【解决方案2】:

    你可以试试 RAND()

    更新 TBL SET [TIME] = DATEADD(MINUTE, ABS(ROUND(RAND()*10,0)) , [TIME])

    你可能会得到重复的随机数,同意 Ale;我们可以使用 NEWID() 代替。

    【讨论】:

      猜你喜欢
      • 2014-01-13
      • 1970-01-01
      • 2010-10-22
      • 2013-12-12
      • 2015-10-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-16
      相关资源
      最近更新 更多