任何人都可以告诉我,我想为我的桌子生成100个随机日期:
create table dates (dt date)
这段代码没问题我想把它放在循环下面的代码中,这样就可以生成100个随机日期
SELECT
DATEADD(second, (rand() * 60 + 1),
DATEADD(minute, (rand() * 60 + 1),
DATEADD(day, (rand() * 365 + 1),
DATEADD(year, -1, getdate())
如果可以的话,或generate random
日期的任何其他简单代码都会给我。
由于
praviin
答案 0 :(得分:1)
以下是一个例子:
select top 100 dateadd(ss, cast(abs(checksum(newid())) as int), '19000101') as rndDate
from master..spt_values
小提琴http://sqlfiddle.com/#!3/9eecb7/6049
对于预定义范围:
with cte as(select row_number() over(order by number) % 366 r
from master..spt_values)
select top 100 dateadd(dd, r, '20141231') from cte order by newid()
r
将包含1到366之间的值。添加到'20141231'
将提供所需范围内的值。
答案 1 :(得分:0)
您想要的实际上只能通过存储过程实现。我建议您研究MySQL compound-statement语法,尤其是loop syntax.
您必须输入自己的日期生成代码,但此循环中的代码在调用时应运行10次:
CREATE PROCEDURE iterateTen()
BEGIN
DECLARE p1 INT DEFAULT 0;
label1: LOOP
SET p1 = p1 + 1;
IF p1 < 10 THEN
ITERATE label1;
END IF;
LEAVE label1;
END LOOP label1;
END;