これを使用して、1900年1月1日から2079年6月6日までの間にsmalldatetimeを生成します(チェックされていない、SQLがインストールされていない)
DATEADD(day, (ABS(CHECKSUM(NEWID())) % 65530), 0)
NEWIDは、RANDを使用するよりも優れています。RANDは、単一のSELECTまたはUPDATEで異なる値の行を生成しません(動作が変更された場合、SQL 2000では生成されませんでした)。
編集:このように
UPDATE
table
SET
datetimecol = DATEADD(day, (ABS(CHECKSUM(NEWID())) % 65530), 0)
編集:65535を65530に変更し、範囲の上限でのオーバーフローを回避するためにABSを追加しました