Sql server 给定日期时间范围内的随机日期时间

Sql server 给定日期时间范围内的随机日期时间,sql-server,datetime,Sql Server,Datetime,我需要在T-SQL for MS-SQL server 2012中获取2个日期时间范围内的随机日期时间。对我来说,它必须达到秒的精度,我需要DATETIME2(0)作为输入和输出的数据类型。我在网上做了一些研究,但我能找到的答案要么只是日期,要么是其他数据库类型 代码应该执行以下操作: 输入:('2015-01-01 08:22:13','2015-03-05 17:56:31')一个选项是随机分配FromDate和ToDate之间的秒数,然后将其添加到FromDate。希望对你有用 DECLA

我需要在T-SQL for MS-SQL server 2012中获取2个日期时间范围内的随机日期时间。对我来说,它必须达到秒的精度,我需要DATETIME2(0)作为输入和输出的数据类型。我在网上做了一些研究,但我能找到的答案要么只是日期,要么是其他数据库类型

代码应该执行以下操作:


输入:('2015-01-01 08:22:13','2015-03-05 17:56:31')一个选项是随机分配FromDate和ToDate之间的秒数,然后将其添加到FromDate。希望对你有用

DECLARE @FromDate DATETIME2(0)
DECLARE @ToDate   DATETIME2(0)

SET @FromDate = '2015-01-01 08:22:13' 
SET @ToDate = '2015-03-05 17:56:31'

DECLARE @Seconds INT = DATEDIFF(SECOND, @FromDate, @ToDate)
DECLARE @Random INT = ROUND(((@Seconds-1) * RAND()), 0)

SELECT DATEADD(SECOND, @Random, @FromDate)