Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Pilih tanggal acak dalam rentang tertentu

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

EDIT

Jika ini akan dieksekusi sebagai bagian dari pernyataan yang mengembalikan beberapa baris atau sebagai bagian dari pembaruan, RAND() akan mengembalikan nilai tunggal untuk keseluruhan hasil. Untuk itu RAND(CHECKSUM(NEWID())) dapat digunakan.

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. bergabung dengan kolom data yang dibatasi koma

  2. Kelompokkan objek serupa dalam rentang tanggal yang berbeda untuk mendapatkan tanggal minimum dan maksimum di SQL Server

  3. SQL Server memilih nilai acak (atau pertama) dengan agregasi

  4. Siapa saja yang menggunakan Kontrol Sumber SQL dari Gerbang Merah

  5. Kembalikan Daftar Pemicu di SQL Server