--创建一个自定义函数:取得指定上下限的随机日期if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[f_rand]') and xtype in (N'FN', N'IF', N'TF'))
drop function [dbo].[f_rand]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[v_rand]') and OBJECTPROPERTY(id, N'IsView') = 1)
drop view [dbo].[v_rand]
GO--需要这样一个视图
create view v_rand as select re=rand()
go--自定义函数:取得指定上下限的随机数
create function f_rand(
@begin_date datetime,
@end_date datetime
)
returns datetime
as
begin
return(dateadd(day
,(select re*datediff(day,@begin_date,@end_date) from v_rand)
,@begin_date))
end
go

解决方案 »

  1.   

    --调用自定义函数,更新date字段为随机日期update 你的表 set [date]=dbo.f_rand('2001-1-1','2004-7-1')
      

  2.   

    可以看这个贴子,
    http://search.csdn.net/Expert/topic/2364/2364777.xml?temp=.7432672
      

  3.   

    --那就改一下函数,增加对时间部分的随机取值就行了.create function f_rand(
    @begin_date datetime,
    @end_date datetime
    )
    returns datetime
    as
    begin
    return(dateadd(second
    ,(select re*216000 from v_rand)
    ,dateadd(day
    ,(select re*datediff(day,@begin_date,@end_date) from v_rand)
    ,convert(varchar(10),@begin_date,120))
    ))
    end
    go