Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Cách cập nhật các hàng với một ngày ngẫu nhiên

Sử dụng điều này để tạo smalldatetime từ ngày 1 tháng 1 năm 1900 đến ngày 6 tháng 6 năm 2079 (không được kiểm tra, SQL chưa được cài đặt)

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

NEWID tốt hơn nên cố gắng sử dụng RAND:RAND không tạo ra các hàng giá trị khác nhau trong một CHỌN hoặc CẬP NHẬT duy nhất (nó không có trong SQL 2000, trong trường hợp hành vi đã thay đổi).

Chỉnh sửa:như thế này

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

Chỉnh sửa:đã thay đổi 65535 thành 65530 và thêm ABS để tránh tràn ở giới hạn trên của phạm vi



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Trong SQL Server, làm cách nào tôi có thể khóa một hàng theo cách tương tự như lệnh SELECT FOR UPDATE WAIT của Oracle?

  2. Thêm mối quan hệ Khoá ngoại giữa hai Cơ sở dữ liệu

  3. SQL Server - dừng hoặc ngắt việc thực thi tập lệnh SQL

  4. Mệnh đề WHERE IS NULL, IS NOT NULL hoặc NO WHERE tùy thuộc vào giá trị tham số SQL Server

  5. Cách tốt nhất để tạo và điền một bảng số là gì?