Sql server SQL Server:特定范围内的随机日期(包括随机小时、分钟等)
我想为SQL Server更新查询创建一个随机日期。我找到了很多随机日期或类似的例子,但我找不到创建随机日期、小时、分钟、秒和毫秒的例子 这就是我用来随机创建日期的方法,但它总是给我00,如小时、分钟、秒和毫秒,我不知道如何将它们随机化 这是我的疑问:Sql server SQL Server:特定范围内的随机日期(包括随机小时、分钟等),sql-server,Sql Server,我想为SQL Server更新查询创建一个随机日期。我找到了很多随机日期或类似的例子,但我找不到创建随机日期、小时、分钟、秒和毫秒的例子 这就是我用来随机创建日期的方法,但它总是给我00,如小时、分钟、秒和毫秒,我不知道如何将它们随机化 这是我的疑问: declare @FromDate date = GETDATE()-2 declare @ToDate date = GETDATE()-1 UPDATE ACCOUNTS SET dateFinished= dateadd(day, ran
declare @FromDate date = GETDATE()-2
declare @ToDate date = GETDATE()-1
UPDATE ACCOUNTS
SET dateFinished=
dateadd(day, rand(checksum(newid())) * (1 + datediff(day, @FromDate, @ToDate)), @FromDate)
我会这样做:
实际上给出了一个随机日期,但不在特定范围内。Atm我正在考虑如何适应特定的范围。不产生一个随机的时间只是日期
DECLARE @FromDate DATETIME = DATEADD(DAY, -2, GETDATE())
DECLARE @ToDate DATETIME = DATEADD(DAY, -1, GETDATE())
DECLARE @Seconds INT = DATEDIFF(SECOND, @FromDate, @ToDate)
DECLARE @Random INT = ROUND(((@Seconds-1) * RAND()), 0)
DECLARE @Milliseconds INT = ROUND((999 * RAND()), 0)
SELECT DATEADD(MILLISECOND, @Milliseconds, DATEADD(SECOND, @Random, @FromDate))
SELECT dateaddDATEADD(second,
second, (rand()*60+1),
DATEADD(minute,
(rand()*60+1) ,
DATEADD(day,
(rand()*365+1),
DATEADD(year,
-1,
getdate()))) )
declare @FromDate dateTIME = '2014-01-01'
declare @ToDate dateTIME = '2014-12-31'
select top 100 dateadd(day,rand(checksum(newid()))*(1+datediff(day, @FromDate, @ToDate)), @FromDate) FROM Tabled(give your table name)