我想生成一个随机时间,比如从2001年1月1日-2008年12月31日中的某一天,要求年月日时分秒都是随机的,请问该如何做呢?这个问题比较急,请高手们详细点说,谢谢!~

解决方案 »

  1.   

    http://topic.csdn.net/t/20061106/22/5137814.html
    http://topic.csdn.net/t/20060703/12/4856771.html
      

  2.   

    DECLARE
         @dt1 DATETIME,
         @dt2 DATETIME;SELECT @dt1='2001-1-1',@dt2='2008-12-31';SELECT TOP 100 
         RandomDateTime=DATEADD(HOUR,(ABS(CHECKSUM(NEWID()))%(1+DATEDIFF(HOUR,@dt2,@dt1))),@dt1)
    FROM sysobjects,syscolumns;/*
    RandomDateTime
    -----------------------
    2007-04-16 14:00:00.000
    2004-11-21 03:00:00.000
    2006-06-20 15:00:00.000
    2006-03-25 08:00:00.000
    2007-08-31 19:00:00.000
    2003-02-21 19:00:00.000
    2002-09-04 03:00:00.000
    2001-04-29 02:00:00.000
    2007-12-27 00:00:00.000
    2005-05-14 08:00:00.000
    2005-04-18 15:00:00.000
    2001-10-24 05:00:00.000
    2003-08-28 15:00:00.000
    2003-09-10 06:00:00.000
    2005-11-28 14:00:00.000
    2001-12-10 02:00:00.000
    2008-02-05 08:00:00.000
    2004-08-14 11:00:00.000
    2006-12-14 11:00:00.000
    2003-07-16 01:00:00.000
    2003-02-08 12:00:00.000
    2004-11-18 15:00:00.000
    2008-01-11 07:00:00.000
    2006-05-20 06:00:00.000
    2004-07-21 01:00:00.000
    2004-05-01 20:00:00.000
    2002-02-25 06:00:00.000
    2001-12-09 16:00:00.000
    2001-05-31 09:00:00.000
    2005-08-01 18:00:00.000
    2001-05-21 10:00:00.000
    2008-08-19 10:00:00.000
    2003-10-20 21:00:00.000
    2002-11-25 00:00:00.000
    2001-11-16 07:00:00.000
    2008-08-21 13:00:00.000
    2007-10-02 12:00:00.000
    2007-05-09 05:00:00.000
    2004-02-11 06:00:00.000
    2007-09-10 01:00:00.000
    2002-12-28 23:00:00.000
    2002-01-05 11:00:00.000
    2002-07-05 19:00:00.000
    2003-05-31 05:00:00.000
    2008-02-29 02:00:00.000
    2005-12-24 22:00:00.000
    2005-09-03 05:00:00.000
    2002-11-07 21:00:00.000
    2007-10-01 17:00:00.000
    2004-07-09 08:00:00.000
    2007-05-14 02:00:00.000
    2002-02-18 21:00:00.000
    2003-10-14 05:00:00.000
    2001-08-01 20:00:00.000
    2001-05-07 15:00:00.000
    2004-06-09 09:00:00.000
    2007-08-13 19:00:00.000
    2001-10-13 11:00:00.000
    2001-10-06 11:00:00.000
    2001-07-30 13:00:00.000
    2005-03-12 14:00:00.000
    2003-10-07 03:00:00.000
    2002-01-31 14:00:00.000
    2005-06-17 18:00:00.000
    2005-06-29 12:00:00.000
    2001-02-06 21:00:00.000
    2008-09-19 09:00:00.000
    2005-01-02 12:00:00.000
    2008-04-07 10:00:00.000
    2003-11-08 15:00:00.000
    2003-02-14 01:00:00.000
    2004-09-08 05:00:00.000
    2001-10-16 14:00:00.000
    2007-02-27 15:00:00.000
    2007-08-31 03:00:00.000
    2004-03-31 12:00:00.000
    2004-11-21 06:00:00.000
    2005-04-15 09:00:00.000
    2002-11-20 14:00:00.000
    2003-07-11 12:00:00.000
    2003-12-01 13:00:00.000
    2003-01-10 03:00:00.000
    2006-10-31 06:00:00.000
    2002-03-03 00:00:00.000
    2003-04-06 14:00:00.000
    2004-01-24 00:00:00.000
    2003-01-08 00:00:00.000
    2005-12-23 04:00:00.000
    2005-08-19 01:00:00.000
    2003-07-08 06:00:00.000
    2003-07-09 15:00:00.000
    2008-09-27 00:00:00.000
    2007-03-10 06:00:00.000
    2004-03-22 06:00:00.000
    2006-12-29 10:00:00.000
    2007-01-10 08:00:00.000
    2003-07-07 05:00:00.000
    2006-10-22 12:00:00.000
    2001-03-16 05:00:00.000
    2002-09-09 23:00:00.000(100 行受影响)
    */
      

  3.   

    select dateadd(ss,cast(ceiling(rand() * datediff(ss,'2001-01-01','2008-12-31')) as int),'2001-01-01')