select convert(char(10),dateadd(dd,-cast(rand()*9999 as int),getdate()),120)
CREATE VIEW GetNow AS SELECT NOW = GETDATE() GOCREATE VIEW GetRand AS SELECT Rnd = RAND() GOCREATE FUNCTION MakeRndDate(@MinDate DATETIME) RETURNS DATETIME AS BEGIN DECLARE @i INT DECLARE @re DATETIME DECLARE @NOW DATETIME DECLARE @RND FLOAT SELECT @NOW = NOW FROM GETNOW SET @i = DATEDIFF(DAY, @NOW, @MinDate) + 1 SET @re = @MinDate WHILE @re <= @MinDate BEGIN SELECT @RND = Rnd FROM GETRAND SET @re = DATEADD(DAY, @RND * @i, @NOW) END RETURN @re END GOSELECT DBO.MAKERNDDATE('2005/12/1') GODROP VIEW dbo.GetNow DROP VIEW dbo.GetRand DROP FUNCTION dbo.MakeRndDate
declare @a int set @a=datediff(day,'2006.01.01',getdate()) set rowcount @a select identity(int,1,1) as id into # from sysobjects a,sysobjects b set rowcount 0 select top 1 dateadd(day,id,'2006.01.01') from # order by newid()
set @begin = '2006-11-01'
select dateadd(day,rand() * datediff(day,@begin,getdate()),@begin)
AS
SELECT NOW = GETDATE()
GOCREATE VIEW GetRand
AS
SELECT Rnd = RAND()
GOCREATE FUNCTION MakeRndDate(@MinDate DATETIME)
RETURNS DATETIME
AS
BEGIN
DECLARE @i INT
DECLARE @re DATETIME
DECLARE @NOW DATETIME
DECLARE @RND FLOAT SELECT @NOW = NOW FROM GETNOW
SET @i = DATEDIFF(DAY, @NOW, @MinDate) + 1
SET @re = @MinDate
WHILE @re <= @MinDate
BEGIN
SELECT @RND = Rnd FROM GETRAND
SET @re = DATEADD(DAY, @RND * @i, @NOW)
END
RETURN @re
END
GOSELECT DBO.MAKERNDDATE('2005/12/1')
GODROP VIEW dbo.GetNow
DROP VIEW dbo.GetRand
DROP FUNCTION dbo.MakeRndDate
set @a=datediff(day,'2006.01.01',getdate())
set rowcount @a
select identity(int,1,1) as id into # from sysobjects a,sysobjects b
set rowcount 0
select top 1 dateadd(day,id,'2006.01.01') from # order by newid()
set @begin = '2006-11-01'
select dateadd(day,rand() * datediff(day,@begin,getdate()),@begin)
是时间不是日期哦后面的HH:MM:SS也要不同的
set @begin = '2006-11-01'
select dateadd(millisecond,rand() * datediff(millisecond,@begin,getdate()),@begin)
set @begin = '2006-11-01'
select dateadd(second,rand() * datediff(second,@begin,getdate()),@begin)需要注意如果开始日期和现在相差太大,可能会溢出,那就最好降低精度