Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Come aggiornare le righe con una data casuale

Usalo per generare un smalldatetime tra il 1 gennaio 1900 e il 6 giugno 2079 (non selezionato, SQL non installato)

DATEADD(day, (ABS(CHECKSUM(NEWID())) % 65530), 0)

NEWID è meglio che provare a usare RAND:RAND non genera righe di valori diversi in una singola SELECT o UPDATE (beh, non lo è stato in SQL 2000, nel caso in cui il comportamento sia cambiato).

Modifica:così

UPDATE
  table
SET
  datetimecol = DATEADD(day, (ABS(CHECKSUM(NEWID())) % 65530), 0)

Modifica:modificato da 65535 a 65530 e aggiunto ABS per evitare l'overflow al limite superiore dell'intervallo