随机日期SQL

随机日期SQL,sql,sql-server,tsql,date,Sql,Sql Server,Tsql,Date,你能帮忙吗 我有一个到达日期列,需要添加5000行,其中包含2010年的随机日期 例如:01/01/2010,25/8/2010,03/05/2010,31/12/2010,等等 我认为这将是一个INSERT语句,但我不确定 谢谢 韦恩 使用占用率 创建表格簿 (书号varchar(30), 到达日期(国际) 声明@BookNumber varchar(30) 声明@ArrivalDate int 设置@BookNumber=1 设置@ArrivalDate=0 虽然@BookNumber,。很

你能帮忙吗

我有一个到达日期列,需要添加5000行,其中包含2010年的随机日期

例如:
01/01/2010
25/8/2010
03/05/2010
31/12/2010
,等等

我认为这将是一个
INSERT
语句,但我不确定

谢谢

韦恩

使用占用率
创建表格簿
(书号varchar(30),
到达日期(国际)
声明@BookNumber varchar(30)
声明@ArrivalDate int
设置@BookNumber=1
设置@ArrivalDate=0

虽然@BookNumber,。很好,但我喜欢它。不过有一个更新:SET@counter=0我想这就是你的意思。你的第二个示例将为每一行生成相同的值-
RAND()
只被调用一次。@Damien_不信者,是的,我意识到了这一点,并根据commentsHi Pinny中的“相关”帖子进行了修改。它似乎不起作用,我收到了以下错误消息,见上面的脚本。Msg 257,级别16,状态3,第16行不允许从数据类型datetime隐式转换为int。使用CONVERT函数运行此查询。嗨,Pinny,我的错误是在创建表部分我将到达日期设置为int而不是date。谢谢你的帮助。
USE Occupancy
CREATE TABLE Book
(BookNumber varchar(30),
ArrivalDate int)

DECLARE @BookNumber varchar(30)
DECLARE @ArrivalDate int

SET @BookNumber = 1
SET @ArrivalDate = 0

WHILE @BookNumber <= 5000
WHILE @ArrivalDate <= 5000

BEGIN
INSERT INTO Book (BookNumber,ArrivalDate)
SELECT 'B' + Right ('00000000' + CAST(@BookNumber AS varchar(30)),8),
DATEADD(day, CAST(RAND() * 365 as int), '2010-1-1')

SET @BookNumber = @BookNumber + 1
SET @ArrivalDate = @ArrivalDate + 1
END
DECLARE @counter int
SET @counter = 0
WHILE @counter < 5000
BEGIN
    INSERT INTO myTable (arrivalDate)
    SELECT DATEADD(day, CAST(RAND() * 365 as int), '2010-1-1')
    SET @counter = @counter + 1
END
INSERT INTO myTable (arrivalDate)
SELECT DATEADD(day, ABS(CHECKSUM(NEWID()) % 365), '2010-1-1')
FROM ( GenerateRowNumbers(5000, 1) ) t