我有以下T-SQL来更新包含测试数据的表:
UPDATE
SomeTable
SET
Created = GETDATE ( ) - CAST ( RAND ( ) * 365 AS int ) ,
LastUpdated = GETDATE ( ) - CAST ( RAND ( ) * 365 AS int )
我希望它在过去的一年中选择随机的daes,不幸的是它每行都使用相同的日期。什么是让它更新的每一行随机的最好方法?
答案 0 :(得分:34)
使用RAND(CHECKSUM(NEWID()))
在您的情况下,您可以对校验和进行模数,因为CHECKSUM(NEWID())已经是随机的。
CHECKSUM(NEWID()) % 365
答案 1 :(得分:3)
如果您只想要过去一年的天数,请使用此功能(基于@ gbn的答案):
select GETDATE ( ) - ABS( CHECKSUM(NEWID()) % 365 )