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

Chọn một ngày ngẫu nhiên trong phạm vi cụ thể

select DateAdd(d, ROUND(DateDiff(d, '1950-01-01', '1999-12-31') * RAND(), 0), '1950-01-01')

CHỈNH SỬA

Nếu điều này được thực thi như một phần của câu lệnh trả về nhiều hàng hoặc như một phần của cập nhật, thì RAND () sẽ trả về một giá trị duy nhất cho toàn bộ tập kết quả. Trong trường hợp đó, RAND (CHECKSUM (NEWID ())) có thể được sử dụng.

select DateAdd(d, ROUND(DateDiff(d, '1950-01-01', '1999-12-31') * RAND(), 0), '1950-01-01'),
       DateAdd(d, ROUND(DateDiff(d, '1950-01-01', '1999-12-31') * RAND(CHECKSUM(NEWID())), 0), '1950-01-01')
from master..spt_values where type = 'P'


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Trigger không thể thực hiện INSTEAD OF DELETE nhưng được yêu cầu cho ntext, cột hình ảnh

  2. Cách sử dụng các tính năng AlwaysOn của SQL Server

  3. SQL Server 2016:Tạo mối quan hệ

  4. Cập nhật nhiều cột trong SQL

  5. SCOPE_IDENTITY () cho GUID?