【发布时间】:2016-08-02 14:57:46
【问题描述】:
感谢http://mitchelsellers.com/blogs/2008/09/12/creating-random-sql-server-test-data.aspx,我正在使用虚拟信息填充我的数据库以进行测试,并且它正在工作,但是我的日期是随机的,并且得到随机的年/月,但始终是当前时间,从我的数据库中提取了一些示例:
2017-05-30 16:41:53.190
2017-07-21 16:41:53.193
2016-04-23 16:41:53.193
但是我使用这些日期的申请必须以
的形式出现2017-05-30 16:00:00.000
2017-07-21 01:30:00.000
2016-04-23 04:45:00.000
换句话说,日期当前很好,但minute 应该是00,15,30,45 和seconds 和miliseconds 应该总是00。
有什么方法可以将上述格式的随机时间添加到我的 sql 中?
我目前的SQL逻辑如下:
DECLARE @RowCount INT
DECLARE @RowString VARCHAR(10)
DECLARE @Random INT
DECLARE @Upper INT
DECLARE @Lower INT
DECLARE @InsertDate DATETIME
DECLAre @LoopThisManyTimes INT
SET @Lower = -360 /* move 360 days backwards */
SET @Upper = 360 /* move 360 days forward */
SET @RowCount = 0 /* start the counter at 0 */
SET @LoopThisManyTimes = 10 /* set the number of posts to add */
USE [Scheduler]
TRUNCATE TABLE [dbo].[Appointments] /* clear table for testing purposes */
WHILE @RowCount < @LoopThisManyTimes /*loop and add to table */
BEGIN
SET @RowString = CAST(@RowCount AS VARCHAR(10))
SELECT @Random = ROUND(((@Upper - @Lower -1) * RAND() + @Lower), 0)
SET @InsertDate = DATEADD(dd, @Random, GETDATE())
【问题讨论】: