Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Jak zaktualizować wiersze o losową datę?

Użyj tego, aby wygenerować smalldatetime między 1 stycznia 1900 a 6 czerwca 2079 (nie zaznaczone, SQL nie jest zainstalowany)

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

NEWID jest lepsze niż próba użycia RAND:RAND nie generuje wierszy różnych wartości w pojedynczym SELECT lub UPDATE (no cóż, nie było w SQL 2000, na wypadek zmiany zachowania).

Edycja:tak

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

Edycja:zmieniono 65535 na 65530 i dodano ABS, aby uniknąć przepełnienia przy górnej granicy zakresu



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wyszukiwanie pełnotekstowe nie działa, jeśli dołączono słowo zatrzymania, mimo że lista słów zatrzymania jest pusta

  2. Aktualizuj statystyki SQL Server za pomocą planu konserwacji bazy danych

  3. alternatywy dla REPLACE w typie danych text lub ntext

  4. Wewnętrzne elementy replikacji transakcyjnej programu SQL Server

  5. Konwertuj tekst pola tekstowego na liczbę całkowitą