首页 > 解决方案 > 如何使用变量为列中的每一行创建随机日期?

问题描述

我目前正在尝试随机化列中的每个日期!

这会为变量创建一个随机日期并将其分配给每一行,还是会为每一行生成一个唯一的随机日期?

DECLARE @RandomDate DATETIME
SET @RandomDate = CONVERT(varchar,DATEADD(DAY, ABS(CHECKSUM(NEWID()) % (364 * 5), '2000-01-01', 121)

UPDATE myDateTable
SET randomDateColumn = @RandomDate

(我在这里使用了一个变量,而不是在更新语句中正确使用它,因为我还有另一列,我在变量日期之后添加随机天数!)

标签: sqlsql-server

解决方案


变量在语句执行之前设置;然后将其值分配给整个列。

如果您希望在每一行上都有一个随机值,那么您需要将表达式放在查询中:

UPDATE myDateTable
SET randomDateColumn = DATEADD(DAY, ABS(CHECKSUM(NEWID()) % (364 * 5), '2000-01-01')

推荐阅读